This commit is contained in:
Douglas Barone 2023-04-18 10:19:51 -04:00
parent d0935843b8
commit 2da87582f1

403
index.php
View File

@ -7,10 +7,10 @@ $mysql_username = $_ENV["MYSQL_USERNAME"];
$mysql_password = $_ENV["MYSQL_PASSWORD"]; $mysql_password = $_ENV["MYSQL_PASSWORD"];
$mysql_dbname = $_ENV["MYSQL_DBNAME"]; $mysql_dbname = $_ENV["MYSQL_DBNAME"];
if(isset($_GET["img"])){ if (isset($_GET["img"])) {
if(CHECK_USER_LOGADO()){ if (CHECK_USER_LOGADO()) {
$name = '45hgGgFGD4467GgtyhujujhsdkgfkjfKJLHuygTGHJFjhgfDC3JHGFiuklilj7654HJGFfgdf/fotos/'.$_GET["img"].'.jpg'; $name = '45hgGgFGD4467GgtyhujujhsdkgfkjfKJLHuygTGHJFjhgfDC3JHGFiuklilj7654HJGFfgdf/fotos/' . $_GET["img"] . '.jpg';
if(!file_exists($name)){ if (!file_exists($name)) {
$name = 'static/img/avatar_1.png'; $name = 'static/img/avatar_1.png';
} }
$fp = fopen($name, 'rb'); $fp = fopen($name, 'rb');
@ -22,27 +22,27 @@ if(isset($_GET["img"])){
} }
//if(isset($_POST["cmd"])){ //if(isset($_POST["cmd"])){
$entrada = json_decode(file_get_contents('php://input'), true); $entrada = json_decode(file_get_contents('php://input'), true);
$saida = array(); $saida = array();
if(array_key_exists("cmd",$entrada)){ if (array_key_exists("cmd", $entrada)) {
switch ($entrada["cmd"]) { switch ($entrada["cmd"]) {
case "check_login": case "check_login":
if(check_login($entrada["email"],$entrada["token"])){ if (check_login($entrada["email"], $entrada["token"])) {
$saida["res"] = "ok"; $saida["res"] = "ok";
}else{ } else {
$saida["res"] = "erro"; $saida["res"] = "erro";
} }
break; break;
case "login": case "login":
$saida = login($entrada["email"],$entrada["senha"]); $saida = login($entrada["email"], $entrada["senha"]);
break; break;
case "ultimo_relatorio": case "ultimo_relatorio":
if(CHECK_USER_LOGADO()){ if (CHECK_USER_LOGADO()) {
$saida = ultimo_relatorio("45hgGgFGD4467GgtyhujujhsdkgfkjfKJLHuygTGHJFjhgfDC3JHGFiuklilj7654HJGFfgdf/ultimo_relatorio.csv"); $saida = ultimo_relatorio("45hgGgFGD4467GgtyhujujhsdkgfkjfKJLHuygTGHJFjhgfDC3JHGFiuklilj7654HJGFfgdf/ultimo_relatorio.csv");
} }
$saida["res"] = "ok"; $saida["res"] = "ok";
@ -50,27 +50,30 @@ if(isset($_GET["img"])){
case "set_marcacoes": case "set_marcacoes":
$saida = set_marcacao($entrada);; $saida = set_marcacao($entrada);
;
break; break;
case "get_marcacoes": case "get_marcacoes":
$saida = get_marcacoes($entrada);; $saida = get_marcacoes($entrada);
;
break; break;
default: default:
$saida = array("res"=>"erro", "msg"=>"comando nao existe"); $saida = array("res" => "erro", "msg" => "comando nao existe");
break; break;
} }
header('Content-type: application/json'); header('Content-type: application/json');
echo json_encode($saida); echo json_encode($saida);
exit; exit;
} }
function get_marcacoes($entrada){ function get_marcacoes($entrada)
{
$matricula = $entrada["matricula"]; $matricula = $entrada["matricula"];
@ -80,14 +83,14 @@ function get_marcacoes($entrada){
$mysql_dbname = $GLOBALS['mysql_dbname']; $mysql_dbname = $GLOBALS['mysql_dbname'];
$mysql_conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname); $mysql_conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname);
$m = array(0=>false,1=>true); $m = array(0 => false, 1 => true);
if(existe_marcacao($matricula)){ if (existe_marcacao($matricula)) {
$sql = "SELECT `matricula`, `whats`, `whats`, `fone`, `email`, `visita`, `pessoal`, `sucesso`, `comentario` FROM `acoes` WHERE matricula='$matricula'"; $sql = "SELECT `matricula`, `whats`, `whats`, `fone`, `email`, `visita`, `pessoal`, `sucesso`, `comentario` FROM `acoes` WHERE matricula='$matricula'";
$result = $mysql_conn->query($sql); $result = $mysql_conn->query($sql);
if ($result->num_rows > 0) { if ($result->num_rows > 0) {
while($linha = $result->fetch_assoc()) { while ($linha = $result->fetch_assoc()) {
$r = array(); $r = array();
$r["matricula"] = $matricula; $r["matricula"] = $matricula;
@ -99,9 +102,6 @@ function get_marcacoes($entrada){
$r["sucesso"] = $m[$linha["sucesso"]]; $r["sucesso"] = $m[$linha["sucesso"]];
$r["comentario"] = $linha["comentario"]; $r["comentario"] = $linha["comentario"];
return $r; return $r;
} }
} }
@ -110,22 +110,23 @@ function get_marcacoes($entrada){
$mysql_conn->close(); $mysql_conn->close();
$linha = array( $linha = array(
"res"=>"ok", "res" => "ok",
"matricula"=>$matricula, "matricula" => $matricula,
"pessoal"=>false, "pessoal" => false,
"whats"=>false, "whats" => false,
"fone"=>false, "fone" => false,
"email"=>false, "email" => false,
"visita"=>false, "visita" => false,
"sucesso"=>false, "sucesso" => false,
"comentario"=>"" "comentario" => ""
); );
return $linha ; return $linha;
} }
function set_marcacao($entrada){ function set_marcacao($entrada)
{
$matricula = $entrada["matricula"]; $matricula = $entrada["matricula"];
$pessoal = $entrada["pessoal"]; $pessoal = $entrada["pessoal"];
@ -146,20 +147,21 @@ function set_marcacao($entrada){
$mysql_dbname = $GLOBALS['mysql_dbname']; $mysql_dbname = $GLOBALS['mysql_dbname'];
$mysql_conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname); $mysql_conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname);
if(existe_marcacao($matricula)){ if (existe_marcacao($matricula)) {
$sql = "UPDATE `acoes` SET `pessoal`='$pessoal', `whats`='$whats', `fone`='$fone', `email`='$email', `visita`='$visita', `sucesso`='$sucesso', `comentario`='$comentario' WHERE matricula='$matricula'"; $sql = "UPDATE `acoes` SET `pessoal`='$pessoal', `whats`='$whats', `fone`='$fone', `email`='$email', `visita`='$visita', `sucesso`='$sucesso', `comentario`='$comentario' WHERE matricula='$matricula'";
}else{ } else {
$sql = "INSERT INTO `acoes`(`matricula`, `pessoal`, `whats`, `fone`, `email`, `visita`, `sucesso`, `comentario`) VALUES ('$matricula', '$pessoal', '$whats', '$fone', '$email', '$visita', '$sucesso', '$comentario')"; $sql = "INSERT INTO `acoes`(`matricula`, `pessoal`, `whats`, `fone`, `email`, `visita`, `sucesso`, `comentario`) VALUES ('$matricula', '$pessoal', '$whats', '$fone', '$email', '$visita', '$sucesso', '$comentario')";
} }
$result = $mysql_conn->query($sql); $result = $mysql_conn->query($sql);
$mysql_conn->close(); $mysql_conn->close();
return array("res"=>"ok","rr"=>$sql,"entrada"=>$entrada); return array("res" => "ok", "rr" => $sql, "entrada" => $entrada);
} }
function existe_marcacao($matricula){ function existe_marcacao($matricula)
{
$mysql_servername = $GLOBALS['mysql_servername']; $mysql_servername = $GLOBALS['mysql_servername'];
$mysql_username = $GLOBALS['mysql_username']; $mysql_username = $GLOBALS['mysql_username'];
$mysql_password = $GLOBALS['mysql_password']; $mysql_password = $GLOBALS['mysql_password'];
@ -169,8 +171,8 @@ function existe_marcacao($matricula){
$sql = "SELECT `matricula` FROM `acoes` WHERE matricula='$matricula'"; $sql = "SELECT `matricula` FROM `acoes` WHERE matricula='$matricula'";
$result = $mysql_conn->query($sql); $result = $mysql_conn->query($sql);
if ($result->num_rows > 0) { if ($result->num_rows > 0) {
while($linha = $result->fetch_assoc()) { while ($linha = $result->fetch_assoc()) {
if($linha["matricula"]==$matricula){ if ($linha["matricula"] == $matricula) {
return true; return true;
} }
} }
@ -180,13 +182,24 @@ function existe_marcacao($matricula){
} }
function CHECK_USER_LOGADO(){ function CHECK_USER_LOGADO()
if(!isset($_COOKIE['email'])){return false;}; {
if(!isset($_COOKIE['token'])){return false;}; if (!isset($_COOKIE['email'])) {
if(check_login($_COOKIE["email"],$_COOKIE["token"])){return true;}; return false;
}
;
if (!isset($_COOKIE['token'])) {
return false;
}
;
if (check_login($_COOKIE["email"], $_COOKIE["token"])) {
return true;
}
;
return false; return false;
} }
function ultimo_relatorio($arquivo){ function ultimo_relatorio($arquivo)
{
#"estudante","unidade_curricular","classe","curso","coordenacao","campus","qt_aulas_classe","data_falta","matricula","id_classe","turma","professor","celular","email","email_institucional","endereco","idade" #"estudante","unidade_curricular","classe","curso","coordenacao","campus","qt_aulas_classe","data_falta","matricula","id_classe","turma","professor","celular","email","email_institucional","endereco","idade"
#"estudante","turma","total_faltas","faltas_por_dia","matricula","celular","email","endereco","idade" #"estudante","turma","total_faltas","faltas_por_dia","matricula","celular","email","endereco","idade"
@ -200,29 +213,29 @@ function ultimo_relatorio($arquivo){
$ultima_matricula = ""; $ultima_matricula = "";
$primeiro = true; $primeiro = true;
$nova_linha = array(); $nova_linha = array();
$turnos = array("1"=>" - Matutino","2"=>" - Vespertino","3"=>" - Noturno","4"=>"","5"=>"","0"=>""); $turnos = array("1" => " - Matutino", "2" => " - Vespertino", "3" => " - Noturno", "4" => "", "5" => "", "0" => "");
$dados = array(); $dados = array();
$LIMITE_DE_FALTAS = 20; $LIMITE_DE_FALTAS = 20;
for($i = 1; $i<count($linhas); $i++){ for ($i = 1; $i < count($linhas); $i++) {
$linha = $linhas[$i]; $linha = $linhas[$i];
if(count($linha)>=6){ if (count($linha) >= 6) {
if ($ultima_matricula!= $linha[$k["matricula"]]){ if ($ultima_matricula != $linha[$k["matricula"]]) {
if(!$primeiro){ if (!$primeiro) {
ksort($nova_linha["faltas_por_dia"]); ksort($nova_linha["faltas_por_dia"]);
$chave_lista = str_pad($nova_linha["total_faltas"], 6 , '0' , STR_PAD_LEFT) ."_". $nova_linha["estudante"]; $chave_lista = str_pad($nova_linha["total_faltas"], 6, '0', STR_PAD_LEFT) . "_" . $nova_linha["estudante"];
if($nova_linha["em_risco"]){ if ($nova_linha["em_risco"]) {
$dados[$chave_lista] = $nova_linha; $dados[$chave_lista] = $nova_linha;
} }
if($nova_linha["em_risco"]){ if ($nova_linha["em_risco"]) {
$risco_turma[$nova_linha["turma"]] +=1; $risco_turma[$nova_linha["turma"]] += 1;
} }
} }
$nova_linha = array(); $nova_linha = array();
$nova_linha["estudante"] = $linha[$k["estudante"]]; $nova_linha["estudante"] = $linha[$k["estudante"]];
$nova_linha["matricula"] = $linha[$k["matricula"]]; $nova_linha["matricula"] = $linha[$k["matricula"]];
$turma = end(explode(" ", $linha[$k["curso"]])) ." ". substr($linha[$k["turma"]],-2, 2). $turnos[substr($linha[$k["turma"]],-4, 1)] ; $turma = end(explode(" ", $linha[$k["curso"]])) . " " . substr($linha[$k["turma"]], -2, 2) . $turnos[substr($linha[$k["turma"]], -4, 1)];
$nova_linha["turma"] = $turma ; $nova_linha["turma"] = $turma;
$nova_linha["total_faltas"] = 0; $nova_linha["total_faltas"] = 0;
$nova_linha["faltas_por_dia"] = array(); $nova_linha["faltas_por_dia"] = array();
$nova_linha["faltas_por_disciplina"] = array(); $nova_linha["faltas_por_disciplina"] = array();
@ -234,44 +247,48 @@ function ultimo_relatorio($arquivo){
$primeiro = false; $primeiro = false;
$ultima_matricula = $linha[$k["matricula"]]; $ultima_matricula = $linha[$k["matricula"]];
} }
$turmas[$turma] +=1; $turmas[$turma] += 1;
$nova_linha["faltas_por_dia"][ tdata( $linha[$k["data_falta"]] ) ] +=1; $nova_linha["faltas_por_dia"][tdata($linha[$k["data_falta"]])] += 1;
$nova_linha["total_faltas"] += 1; $nova_linha["total_faltas"] += 1;
if($nova_linha["total_faltas"]>= $LIMITE_DE_FALTAS){ if ($nova_linha["total_faltas"] >= $LIMITE_DE_FALTAS) {
$nova_linha["em_risco"] = true; $nova_linha["em_risco"] = true;
} }
$datas[tdata($linha[$k["data_falta"]])] +=1; $datas[tdata($linha[$k["data_falta"]])] += 1;
} }
} }
$chave_lista = str_pad($nova_linha["total_faltas"], 6 , '0' , STR_PAD_LEFT) ."_". $nova_linha["estudante"]; $chave_lista = str_pad($nova_linha["total_faltas"], 6, '0', STR_PAD_LEFT) . "_" . $nova_linha["estudante"];
if($nova_linha["em_risco"]){ if ($nova_linha["em_risco"]) {
$dados[ $chave_lista ] = $nova_linha; $dados[$chave_lista] = $nova_linha;
} }
if($nova_linha["em_risco"]){ if ($nova_linha["em_risco"]) {
$risco_turma[$nova_linha["turma"]] +=1; $risco_turma[$nova_linha["turma"]] += 1;
} }
ksort($risco_turma,SORT_STRING); ksort($risco_turma, SORT_STRING);
ksort($dados,SORT_STRING); ksort($dados, SORT_STRING);
ksort($turmas,SORT_STRING); ksort($turmas, SORT_STRING);
ksort($datas,SORT_STRING); ksort($datas, SORT_STRING);
return array("turmas"=>$turmas,"risco_turma"=>$risco_turma,"dados"=>$dados,"datas"=>$datas); return array("turmas" => $turmas, "risco_turma" => $risco_turma, "dados" => $dados, "datas" => $datas);
} }
function tdata($data){ function tdata($data)
{
$d = explode("/", $data); $d = explode("/", $data);
return $d[2] ."/" . $d[1] . "/" . $d[0]; return $d[2] . "/" . $d[1] . "/" . $d[0];
} }
function mapa_de_chaves($linha0){ function mapa_de_chaves($linha0)
{
$k = array(); $k = array();
for($i = 0; $i<count($linha0); $i++){ for ($i = 0; $i < count($linha0); $i++) {
$k[$linha0[$i]] = $i; $k[$linha0[$i]] = $i;
} }
return $k; return $k;
} }
function lista_de_turmas($datas){ function lista_de_turmas($datas)
{
} }
function login($email,$senha){ function login($email, $senha)
{
$mysql_servername = $GLOBALS['mysql_servername']; $mysql_servername = $GLOBALS['mysql_servername'];
$mysql_username = $GLOBALS['mysql_username']; $mysql_username = $GLOBALS['mysql_username'];
$mysql_password = $GLOBALS['mysql_password']; $mysql_password = $GLOBALS['mysql_password'];
@ -281,21 +298,22 @@ function login($email,$senha){
$sql = "SELECT `email`,`senha` FROM `usuarios` WHERE email='$email'"; $sql = "SELECT `email`,`senha` FROM `usuarios` WHERE email='$email'";
$result = $mysql_conn->query($sql); $result = $mysql_conn->query($sql);
if ($result->num_rows > 0) { if ($result->num_rows > 0) {
while($user = $result->fetch_assoc()) { while ($user = $result->fetch_assoc()) {
if($user["email"]==$email&&$user['senha']==$senha){ if ($user["email"] == $email && $user['senha'] == $senha) {
$token = gerar_token(); $token = gerar_token();
$sql = "UPDATE usuarios SET token='$token' WHERE email='$email'"; $sql = "UPDATE usuarios SET token='$token' WHERE email='$email'";
$mysql_conn->query($sql); $mysql_conn->query($sql);
$mysql_conn->close(); $mysql_conn->close();
return array("res"=>"ok","token"=> $token); return array("res" => "ok", "token" => $token);
} }
} }
} }
$mysql_conn->close(); $mysql_conn->close();
return array("res"=>"erro", "token"=>""); return array("res" => "erro", "token" => "");
} }
function check_login($email,$token){ function check_login($email, $token)
{
$mysql_servername = $GLOBALS['mysql_servername']; $mysql_servername = $GLOBALS['mysql_servername'];
$mysql_username = $GLOBALS['mysql_username']; $mysql_username = $GLOBALS['mysql_username'];
$mysql_password = $GLOBALS['mysql_password']; $mysql_password = $GLOBALS['mysql_password'];
@ -307,8 +325,8 @@ function check_login($email,$token){
$result = $mysql_conn->query($sql); $result = $mysql_conn->query($sql);
$mysql_conn->close(); $mysql_conn->close();
if ($result->num_rows > 0) { if ($result->num_rows > 0) {
while($user = $result->fetch_assoc()) { while ($user = $result->fetch_assoc()) {
if($user["email"]==$email&&$user['token']==$token){ if ($user["email"] == $email && $user['token'] == $token) {
return true; return true;
} }
} }
@ -316,14 +334,17 @@ function check_login($email,$token){
return false; return false;
} }
function exemplo_busca(){ function exemplo_busca()
{
$mysql_servername = $GLOBALS['mysql_servername']; $mysql_servername = $GLOBALS['mysql_servername'];
$mysql_username = $GLOBALS['mysql_username']; $mysql_username = $GLOBALS['mysql_username'];
$mysql_password = $GLOBALS['mysql_password']; $mysql_password = $GLOBALS['mysql_password'];
$mysql_dbname = $GLOBALS['mysql_dbname']; $mysql_dbname = $GLOBALS['mysql_dbname'];
$conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname); $conn = new mysqli($mysql_servername, $mysql_username, $mysql_password, $mysql_dbname);
if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);} if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//$sql = "INSERT INTO `usuarios`(`email`, `senha`, `nome`) VALUES ('novoemail@gmail.com','12345678','novousuario')"; //$sql = "INSERT INTO `usuarios`(`email`, `senha`, `nome`) VALUES ('novoemail@gmail.com','12345678','novousuario')";
//$sql = "SELECT * FROM `usuarios` WHERE 1"; //$sql = "SELECT * FROM `usuarios` WHERE 1";
//$sql = "SELECT * FROM `usuarios` WHERE 1 ORDER BY nome DESC"; //$sql = "SELECT * FROM `usuarios` WHERE 1 ORDER BY nome DESC";
@ -332,45 +353,56 @@ function exemplo_busca(){
//$sql = "DELETE FROM usuarios WHERE nome='abc'"; //$sql = "DELETE FROM usuarios WHERE nome='abc'";
$result = $conn->query($sql); $result = $conn->query($sql);
if ($result->num_rows > 0) { if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) { while ($row = $result->fetch_assoc()) {
print_r($row); print_r($row);
echo "<br>"; echo "<br>";
} }
} }
$conn->close(); $conn->close();
} }
function gerar_token($tamanho=50, $maiusculas=true, $minusculas=true, $numeros=true, $simbolos=false){ function gerar_token($tamanho = 50, $maiusculas = true, $minusculas = true, $numeros = true, $simbolos = false)
{
$ma = "ABCDEFGHIJKLMNOPQRSTUVYXWZ"; $ma = "ABCDEFGHIJKLMNOPQRSTUVYXWZ";
$mi = "abcdefghijklmnopqrstuvyxwz"; $mi = "abcdefghijklmnopqrstuvyxwz";
$nu = "0123456789"; $nu = "0123456789";
$si = "!@#$%¨&*()_+="; $si = "!@#$%¨&*()_+=";
if ($maiusculas){$senha .= str_shuffle($ma);} if ($maiusculas) {
if ($minusculas){$senha .= str_shuffle($mi);} $senha .= str_shuffle($ma);
if ($numeros){$senha .= str_shuffle($nu);} }
if ($simbolos){$senha .= str_shuffle($si);} if ($minusculas) {
return substr(str_shuffle($senha),0,$tamanho); $senha .= str_shuffle($mi);
}
if ($numeros) {
$senha .= str_shuffle($nu);
}
if ($simbolos) {
$senha .= str_shuffle($si);
}
return substr(str_shuffle($senha), 0, $tamanho);
} }
function csvToArray($csvFile){ function csvToArray($csvFile)
{
$file_to_read = fopen($csvFile, 'r'); $file_to_read = fopen($csvFile, 'r');
$lines = array(); $lines = array();
while (!feof($file_to_read) ) { while (!feof($file_to_read)) {
$lines[] = fgetcsv($file_to_read); $lines[] = fgetcsv($file_to_read);
} }
return $lines; return $lines;
} }
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="static/img/icone.ico"/> <link rel="shortcut icon" href="static/img/icone.ico" />
<title>ProjetosIFMS</title> <title>ProjetosIFMS</title>
<style> <style>
*{ * {
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
@ -379,6 +411,7 @@ function csvToArray($csvFile){
<link rel="stylesheet" href="static/materialize/css/materialize.min.css"> <link rel="stylesheet" href="static/materialize/css/materialize.min.css">
</head> </head>
<body class='teal lighten-2'> <body class='teal lighten-2'>
<div id="menu_voltar" class="navbar-fixed" style="display:none;"> <div id="menu_voltar" class="navbar-fixed" style="display:none;">
<nav class="nav-extended"> <nav class="nav-extended">
@ -404,9 +437,12 @@ function csvToArray($csvFile){
<i class="material-icons">menu</i> <i class="material-icons">menu</i>
</a> </a>
<ul class="right hide-on-med-and-down"> <ul class="right hide-on-med-and-down">
<li><a onclick="mostrar_aba('Estudantes em risco de evasão')"><i class="material-icons left">format_list_bulleted</i>Estudantes em risco</a></li> <li><a onclick="mostrar_aba('Estudantes em risco de evasão')"><i
<li style="display:none"><a onclick="mostrar_aba('Conselho pedagógico')" ><i class="material-icons left">group</i>Conselho pedagógico</a></li> class="material-icons left">format_list_bulleted</i>Estudantes em risco</a></li>
<li style="display:none"><a onclick="mostrar_aba('Visão geral das turmas')"><i class="material-icons left">show_chart</i>Visão geral das turmas</a></li> <li style="display:none"><a onclick="mostrar_aba('Conselho pedagógico')"><i
class="material-icons left">group</i>Conselho pedagógico</a></li>
<li style="display:none"><a onclick="mostrar_aba('Visão geral das turmas')"><i
class="material-icons left">show_chart</i>Visão geral das turmas</a></li>
<li><a onclick="logout()"><i class="material-icons left">exit_to_app</i>Sair</a></li> <li><a onclick="logout()"><i class="material-icons left">exit_to_app</i>Sair</a></li>
</ul> </ul>
</div> </div>
@ -415,9 +451,12 @@ function csvToArray($csvFile){
</div> </div>
<ul id="menu_mobile" class="sidenav sidenav-close" style="display:none"> <ul id="menu_mobile" class="sidenav sidenav-close" style="display:none">
<li><a onclick="mostrar_aba('Estudantes em risco de evasão')"><i class="material-icons left">format_list_bulleted</i>Estudantes em risco</a></li> <li><a onclick="mostrar_aba('Estudantes em risco de evasão')"><i
<li style="display:none"><a onclick="mostrar_aba('Conselho pedagógico')" ><i class="material-icons left">group</i>Conselho pedagógico</a></li> class="material-icons left">format_list_bulleted</i>Estudantes em risco</a></li>
<li style="display:none"><a onclick="mostrar_aba('Visão geral das turmas')"><i class="material-icons left">show_chart</i>Visão geral das turmas</a></li> <li style="display:none"><a onclick="mostrar_aba('Conselho pedagógico')"><i
class="material-icons left">group</i>Conselho pedagógico</a></li>
<li style="display:none"><a onclick="mostrar_aba('Visão geral das turmas')"><i
class="material-icons left">show_chart</i>Visão geral das turmas</a></li>
<li><a onclick="logout()"><i class="material-icons left">exit_to_app</i>Sair</a></li> <li><a onclick="logout()"><i class="material-icons left">exit_to_app</i>Sair</a></li>
</ul> </ul>
@ -496,7 +535,8 @@ function csvToArray($csvFile){
</p> </p>
<br> <br>
<label for="textarea2">Comentários adicionais</label> <label for="textarea2">Comentários adicionais</label>
<textarea id="acao_comentario" onchange="set_marcacoes()" class="materialize-textarea" ></textarea> <textarea id="acao_comentario" onchange="set_marcacoes()"
class="materialize-textarea"></textarea>
</div> </div>
</div> </div>
@ -541,11 +581,13 @@ function csvToArray($csvFile){
<i class="material-icons prefix">password</i> <i class="material-icons prefix">password</i>
<input type="password" id="login_senha" placeholder="digite sua senha aqui"> <input type="password" id="login_senha" placeholder="digite sua senha aqui">
<label for="primeiro_nome">Senha</label> <label for="primeiro_nome">Senha</label>
<div id="feedback_login" class="col s10 m10 l10 offset-s1 offset-m1 offset-l1 red-text" style="display:none;padding:10px;"></div> <div id="feedback_login" class="col s10 m10 l10 offset-s1 offset-m1 offset-l1 red-text"
style="display:none;padding:10px;"></div>
</div> </div>
<br> <br>
<div class="form-field"> <div class="form-field">
<button id="login" onclick="login()" class="teal btn-large waves-effect waves-dark">ENTRAR</button> <button id="login" onclick="login()"
class="teal btn-large waves-effect waves-dark">ENTRAR</button>
</div> </div>
</div> </div>
</div> </div>
@ -554,15 +596,15 @@ function csvToArray($csvFile){
</div> </div>
</div> </div>
</body> </body>
<script src="static/scripts/jquery.min.js"></script> <script src="static/scripts/jquery.min.js"></script>
<script src="static/materialize/js/materialize.min.js"></script> <script src="static/materialize/js/materialize.min.js"></script>
<script src="static/scripts/libx.js?t=<?php echo str_shuffle('QWER') ?>"></script> <script src="static/scripts/libx.js?t=<?php echo str_shuffle('QWER') ?>"></script>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function () {
$(".sidenav").sidenav(); $(".sidenav").sidenav();
$('select').formSelect(); $('select').formSelect();
check_login() check_login()
@ -591,27 +633,27 @@ function csvToArray($csvFile){
function check_login(){ function check_login() {
api({ api({
"cmd":"check_login", "cmd": "check_login",
"email":getCookie("email"), "email": getCookie("email"),
"token":getCookie("token") "token": getCookie("token")
}, },
function(res){ function (res) {
if(res["res"]=="ok"){ if (res["res"] == "ok") {
mostrar_aba('Estudantes em risco de evasão') mostrar_aba('Estudantes em risco de evasão')
document.getElementById("menu_desktop").style.display = "block"; document.getElementById("menu_desktop").style.display = "block";
document.getElementById("menu_mobile").style.display = "block"; document.getElementById("menu_mobile").style.display = "block";
document.getElementById("lista_turmas").style.display = "block"; document.getElementById("lista_turmas").style.display = "block";
api({ api({
"cmd":"ultimo_relatorio" "cmd": "ultimo_relatorio"
}, },
function(res){ function (res) {
dados=res dados = res
monta_lista_turmas() monta_lista_turmas()
}) })
}else{ } else {
document.getElementById("menu_desktop").style.display = "none"; document.getElementById("menu_desktop").style.display = "none";
document.getElementById("menu_mobile").style.display = "none"; document.getElementById("menu_mobile").style.display = "none";
document.getElementById("tela_login").style.display = "none"; document.getElementById("tela_login").style.display = "none";
@ -620,7 +662,7 @@ function csvToArray($csvFile){
}) })
} }
function monta_lista_turmas(){ function monta_lista_turmas() {
document.getElementById('lista_turmas_lista').innerHTML = "" document.getElementById('lista_turmas_lista').innerHTML = ""
n = 0 n = 0
@ -628,20 +670,20 @@ function csvToArray($csvFile){
for (const [nome_turma, total_faltas] of Object.entries(dados["turmas"])) { for (const [nome_turma, total_faltas] of Object.entries(dados["turmas"])) {
risco_turma = 0 risco_turma = 0
if( nome_turma in dados["risco_turma"] ){ if (nome_turma in dados["risco_turma"]) {
risco_turma = dados["risco_turma"][nome_turma] risco_turma = dados["risco_turma"][nome_turma]
} }
n+=1 n += 1
adicional = '' adicional = ''
if(risco_turma==0){adicional = 'teal lighten-5'} if (risco_turma == 0) { adicional = 'teal lighten-5' }
document.getElementById('lista_turmas_lista').insertAdjacentHTML("afterbegin",novo_item_lista_turmas(nome_turma,risco_turma,adicional)); document.getElementById('lista_turmas_lista').insertAdjacentHTML("afterbegin", novo_item_lista_turmas(nome_turma, risco_turma, adicional));
} }
} }
function novo_item_lista_turmas(nome_turma,risco,adicional=''){ function novo_item_lista_turmas(nome_turma, risco, adicional = '') {
linha = ` linha = `
<li id='[TITULO]' onclick="mostrar_turma('[TITULO]')" class='collection-item avatar waves-effect `+adicional+`' style='width:100%; padding-top: 1px;' > <li id='[TITULO]' onclick="mostrar_turma('[TITULO]')" class='collection-item avatar waves-effect `+ adicional + `' style='width:100%; padding-top: 1px;' >
<br> <br>
<img src='static/img/[IMAGEM].png' class='circle'> <img src='static/img/[IMAGEM].png' class='circle'>
<span class='title'>[TITULO]</span> <span class='title'>[TITULO]</span>
@ -654,19 +696,19 @@ function csvToArray($csvFile){
</img> </img>
</li>` </li>`
imagem = "pessoas_1"; imagem = "pessoas_1";
if( nome_turma.includes("Informática") ){imagem="informatica"} if (nome_turma.includes("Informática")) { imagem = "informatica" }
if( nome_turma.includes("Agricultura") ){imagem="agricultura"} if (nome_turma.includes("Agricultura")) { imagem = "agricultura" }
if( nome_turma.includes("Agronegócio") ){imagem="agronegocio"} if (nome_turma.includes("Agronegócio")) { imagem = "agronegocio" }
if( nome_turma.includes("Agronomia") ){imagem="agronomia"} if (nome_turma.includes("Agronomia")) { imagem = "agronomia" }
linha = linha.replaceAll("[IMAGEM]", imagem); linha = linha.replaceAll("[IMAGEM]", imagem);
linha = linha.replaceAll("[TITULO]", nome_turma); linha = linha.replaceAll("[TITULO]", nome_turma);
linha = linha.replaceAll("[RISCO]", risco); linha = linha.replaceAll("[RISCO]", risco);
return linha; return linha;
} }
function mostrar_turma(turma){ function mostrar_turma(turma) {
document.getElementById("lista_turmas").style.display = "none"; document.getElementById("lista_turmas").style.display = "none";
document.getElementById("estudantes_da_turma").style.display = "block"; document.getElementById("estudantes_da_turma").style.display = "block";
@ -684,19 +726,19 @@ function csvToArray($csvFile){
n = 0 n = 0
for (const [faltas_nome, dados_estudante] of Object.entries(dados["dados"])) { for (const [faltas_nome, dados_estudante] of Object.entries(dados["dados"])) {
if(dados_estudante["turma"]==turma){ if (dados_estudante["turma"] == turma) {
n+=1 n += 1
adicional = '' adicional = ''
//if(dados_estudante["total_faltas"]>=20){adicional = 'teal lighten-5'} //if(dados_estudante["total_faltas"]>=20){adicional = 'teal lighten-5'}
document.getElementById('estudantes_da_turma_lista').insertAdjacentHTML("afterbegin",novo_item_lista_alunos_da_turma(faltas_nome,dados_estudante,adicional)); document.getElementById('estudantes_da_turma_lista').insertAdjacentHTML("afterbegin", novo_item_lista_alunos_da_turma(faltas_nome, dados_estudante, adicional));
} }
} }
} }
function novo_item_lista_alunos_da_turma(faltas_nome,dados_estudante,adicional){ function novo_item_lista_alunos_da_turma(faltas_nome, dados_estudante, adicional) {
linha = ` linha = `
<li id='[TITULO]' onclick="mostra_detalhes_aluno('[KEY]')" class='collection-item avatar waves-effect `+adicional+`' style='width:100%; padding-top: 1px;' > <li id='[TITULO]' onclick="mostra_detalhes_aluno('[KEY]')" class='collection-item avatar waves-effect `+ adicional + `' style='width:100%; padding-top: 1px;' >
<br> <br>
<img src='[IMAGEM]' class='circle'> <img src='[IMAGEM]' class='circle'>
<span class='title'>[TITULO]</span> <span class='title'>[TITULO]</span>
@ -712,14 +754,14 @@ function csvToArray($csvFile){
//if( nome_turma.includes("Agricultura") ){imagem="agricultura"} //if( nome_turma.includes("Agricultura") ){imagem="agricultura"}
//if( nome_turma.includes("Agronegócio") ){imagem="agronegocio"} //if( nome_turma.includes("Agronegócio") ){imagem="agronegocio"}
//if( nome_turma.includes("Agronomia") ){imagem="agronomia"} //if( nome_turma.includes("Agronomia") ){imagem="agronomia"}
linha = linha.replaceAll("[IMAGEM]", "index.php?img="+dados_estudante["matricula"]); linha = linha.replaceAll("[IMAGEM]", "index.php?img=" + dados_estudante["matricula"]);
linha = linha.replaceAll("[KEY]", faltas_nome); linha = linha.replaceAll("[KEY]", faltas_nome);
linha = linha.replaceAll("[TITULO]", dados_estudante["estudante"]); linha = linha.replaceAll("[TITULO]", dados_estudante["estudante"]);
linha = linha.replaceAll("[RISCO]", dados_estudante["total_faltas"]); linha = linha.replaceAll("[RISCO]", dados_estudante["total_faltas"]);
return linha; return linha;
} }
var MATRICULA_SELECIONADA = ""; var MATRICULA_SELECIONADA = "";
function mostra_detalhes_aluno(faltas_nome){ function mostra_detalhes_aluno(faltas_nome) {
dados_estudante = dados["dados"][faltas_nome] dados_estudante = dados["dados"][faltas_nome]
MATRICULA_SELECIONADA = dados_estudante["matricula"] MATRICULA_SELECIONADA = dados_estudante["matricula"]
@ -727,7 +769,7 @@ function csvToArray($csvFile){
document.getElementById("estudantes_da_turma").style.display = "none"; document.getElementById("estudantes_da_turma").style.display = "none";
document.getElementById("detalhes_do_estudante").style.display = "block"; document.getElementById("detalhes_do_estudante").style.display = "block";
document.getElementById("detalhes_do_estudante_foto").src = "index.php?img="+dados_estudante["matricula"]; document.getElementById("detalhes_do_estudante_foto").src = "index.php?img=" + dados_estudante["matricula"];
document.getElementById("detalhes_do_estudante_nome").innerHTML = dados_estudante["estudante"]; document.getElementById("detalhes_do_estudante_nome").innerHTML = dados_estudante["estudante"];
conteudo = ` conteudo = `
@ -751,11 +793,11 @@ function csvToArray($csvFile){
`.replaceAll("[EMAIL]", dados_estudante["email"]).replaceAll("[TELEFONE]", celular).replaceAll("[ENDERECO]", endereco); `.replaceAll("[EMAIL]", dados_estudante["email"]).replaceAll("[TELEFONE]", celular).replaceAll("[ENDERECO]", endereco);
lista_faltas_por_dia ="<table><thead><tr><th>Data</th><th>Faltas</th></tr></thead><tbody>"; lista_faltas_por_dia = "<table><thead><tr><th>Data</th><th>Faltas</th></tr></thead><tbody>";
for (const [data_falta, quantidade_faltas] of Object.entries(dados_estudante["faltas_por_dia"])) { for (const [data_falta, quantidade_faltas] of Object.entries(dados_estudante["faltas_por_dia"])) {
lista_faltas_por_dia += "<tr><td>" + data_falta + "</td><td>" + quantidade_faltas + "</td></tr>" lista_faltas_por_dia += "<tr><td>" + data_falta + "</td><td>" + quantidade_faltas + "</td></tr>"
} }
lista_faltas_por_dia+= "</tbody></table>" lista_faltas_por_dia += "</tbody></table>"
conteudo = conteudo.replaceAll("[FALTAS]", dados_estudante["total_faltas"]); conteudo = conteudo.replaceAll("[FALTAS]", dados_estudante["total_faltas"]);
conteudo = conteudo.replaceAll("[EMAIL]", dados_estudante["email"]); conteudo = conteudo.replaceAll("[EMAIL]", dados_estudante["email"]);
@ -763,32 +805,32 @@ function csvToArray($csvFile){
conteudo = conteudo.replaceAll("[IDADE]", dados_estudante["idade"]); conteudo = conteudo.replaceAll("[IDADE]", dados_estudante["idade"]);
conteudo = conteudo.replaceAll("[ENDERECO]", endereco); conteudo = conteudo.replaceAll("[ENDERECO]", endereco);
document.getElementById("detalhes_do_estudante_conteudo").innerHTML= conteudo; document.getElementById("detalhes_do_estudante_conteudo").innerHTML = conteudo;
document.getElementById("detalhes_do_estudante_faltas_por_data").innerHTML= lista_faltas_por_dia; document.getElementById("detalhes_do_estudante_faltas_por_data").innerHTML = lista_faltas_por_dia;
document.getElementById("detalhes_do_estudante_acao").innerHTML= acoes; document.getElementById("detalhes_do_estudante_acao").innerHTML = acoes;
} }
function set_marcacoes(matricula){ function set_marcacoes(matricula) {
api({ api({
"cmd":"set_marcacoes", "cmd": "set_marcacoes",
"matricula":MATRICULA_SELECIONADA, "matricula": MATRICULA_SELECIONADA,
"pessoal":document.getElementById("acao_contato_pessoal").checked , "pessoal": document.getElementById("acao_contato_pessoal").checked,
"whats":document.getElementById("acao_contato_whats").checked , "whats": document.getElementById("acao_contato_whats").checked,
"fone":document.getElementById("acao_contato_fone").checked , "fone": document.getElementById("acao_contato_fone").checked,
"email":document.getElementById("acao_contato_email").checked , "email": document.getElementById("acao_contato_email").checked,
"visita":document.getElementById("acao_visita").checked , "visita": document.getElementById("acao_visita").checked,
"sucesso":document.getElementById("acao_sucesso").checked , "sucesso": document.getElementById("acao_sucesso").checked,
"comentario":document.getElementById("acao_comentario").value "comentario": document.getElementById("acao_comentario").value
}) })
} }
function get_marcacoes_aluno(matricula){ function get_marcacoes_aluno(matricula) {
api({ api({
"cmd":"get_marcacoes", "cmd": "get_marcacoes",
"matricula":MATRICULA_SELECIONADA "matricula": MATRICULA_SELECIONADA
}, },
function(res){ function (res) {
p(res); p(res);
document.getElementById("acao_contato_pessoal").checked = res["pessoal"] document.getElementById("acao_contato_pessoal").checked = res["pessoal"]
document.getElementById("acao_contato_whats").checked = res["whats"] document.getElementById("acao_contato_whats").checked = res["whats"]
@ -800,9 +842,9 @@ function csvToArray($csvFile){
}) })
} }
function voltar(){ function voltar() {
if(document.getElementById("estudantes_da_turma").style.display == "block"){ if (document.getElementById("estudantes_da_turma").style.display == "block") {
document.getElementById("lista_turmas").style.display = "block"; document.getElementById("lista_turmas").style.display = "block";
document.getElementById("estudantes_da_turma").style.display = "none"; document.getElementById("estudantes_da_turma").style.display = "none";
@ -810,7 +852,7 @@ function csvToArray($csvFile){
document.getElementById("menu_desktop").style.display = "block"; document.getElementById("menu_desktop").style.display = "block";
}else if(document.getElementById("detalhes_do_estudante").style.display == "block"){ } else if (document.getElementById("detalhes_do_estudante").style.display == "block") {
document.getElementById("estudantes_da_turma").style.display = "block"; document.getElementById("estudantes_da_turma").style.display = "block";
document.getElementById("detalhes_do_estudante").style.display = "none"; document.getElementById("detalhes_do_estudante").style.display = "none";
@ -818,44 +860,45 @@ function csvToArray($csvFile){
} }
} }
function login(){ function login() {
api({ api({
"cmd":"login", "cmd": "login",
"email":document.getElementById("login_email").value, "email": document.getElementById("login_email").value,
"senha":document.getElementById("login_senha").value "senha": document.getElementById("login_senha").value
}, },
function(res){ function (res) {
if(res["res"]=="ok"){ if (res["res"] == "ok") {
setCookie("email",document.getElementById("login_email").value) setCookie("email", document.getElementById("login_email").value)
setCookie("token",res["token"]) setCookie("token", res["token"])
mostrar_aba('Estudantes em risco de evasão') mostrar_aba('Estudantes em risco de evasão')
document.getElementById("menu_desktop").style.display = "block"; document.getElementById("menu_desktop").style.display = "block";
document.getElementById("menu_mobile").style.display = "block"; document.getElementById("menu_mobile").style.display = "block";
api({ api({
"cmd":"ultimo_relatorio" "cmd": "ultimo_relatorio"
}, },
function(res){ function (res) {
dados=res dados = res
monta_lista_turmas() monta_lista_turmas()
logado = true; logado = true;
}) })
}else{ } else {
document.getElementById("feedback_login").style.display = "block" document.getElementById("feedback_login").style.display = "block"
document.getElementById("feedback_login").innerHTML = "Email ou senha incorretos" document.getElementById("feedback_login").innerHTML = "Email ou senha incorretos"
} }
}) })
} }
function logout(){ function logout() {
setCookie("email","") setCookie("email", "")
setCookie("token","") setCookie("token", "")
document.getElementById("menu_desktop").style.display = "none"; document.getElementById("menu_desktop").style.display = "none";
document.getElementById("menu_mobile").style.display = "none"; document.getElementById("menu_mobile").style.display = "none";
mostrar_aba('tela_login') mostrar_aba('tela_login')
} }
</script> </script>
</body> </body>
</html> </html>