diff --git a/css/global.css b/css/global.css index e2d1d3e..4f99ef2 100755 --- a/css/global.css +++ b/css/global.css @@ -9,9 +9,8 @@ .hidden{ display: none !important; } - - - +span.unstressed{ color: #aaa; } +span.stressed{ font-weight: bold; } diff --git a/css/layout.css b/css/layout.css index 7332947..640a41f 100755 --- a/css/layout.css +++ b/css/layout.css @@ -56,11 +56,8 @@ body{ /* position */ /*display: block;*/ display: none; position: fixed; - width: 10px; - height: 10px; - - /* border */ - border-radius: 100% / 100%; + width: 0; + height: 0; /* Z */ z-index: 100; diff --git a/index.php b/index.php index 1a23b29..b584792 100755 --- a/index.php +++ b/index.php @@ -78,7 +78,7 @@ $notifNotifNum = 5; if( $_SESSION['identifiant'] != null ){ // si l'utilisateur est connecté, on affiche les notifications /* BOUTON DE DECONNECTION */ - echo "
"; + echo "
"; /* NOTIFICATIONS */ @@ -122,12 +122,12 @@ $notifNotifNum = 5;   - +
- - + +
diff --git a/manager/database.php b/manager/database.php index 0e1714d..8644d9e 100755 --- a/manager/database.php +++ b/manager/database.php @@ -199,7 +199,7 @@ class DataBase{ // si le groupe existe => on récupère ses utilisateurs - $appartenance = $this->pdo->prepare("SELECT u.identifiant, u.prenom, u.nom, u.mail, u.droits ". + $appartenance = $this->pdo->prepare("SELECT u.identifiant, u.prenom, u.nom, u.mail, u.droits, s.nom as semestre ". "FROM utilisateur as u, groupe as g, semestre as s, appartenance as app ". "WHERE u.identifiant = app.id_etudiant ". "AND g.id_groupe = app.id_groupe ". @@ -227,10 +227,10 @@ class DataBase{ } - /******************************************************/ - /*** retourne la liste des utilisateurs des groupes ***/ - /******************************************************/ - public function listeEtudiantsTousGroupes($semestre, $annee){ + /********************************************************************/ + /*** retourne la liste des utilisateurs des groupes d'un semestre ***/ + /********************************************************************/ + public function listeEtudiantsTousGroupesSemestre($semestre, $annee){ /*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/ $getSemestreUID = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee"); $getSemestreUID->execute(array( @@ -245,7 +245,7 @@ class DataBase{ return 'unknown_semestre'; // on cherche tout les groupes du même semestre de la même année - $getGroupesUID = $this->pdo->prepare("SELECT DISTINCT g.nom ". + $getGroupesUID = $this->pdo->prepare("SELECT DISTINCT g.nom, s.rang, s.nom as semestre ". "FROM groupe as g, semestre as s, appartenance as app ". "WHERE g.id_groupe = app.id_groupe ". "AND s.id_semestre = app.id_semestre ". @@ -263,6 +263,7 @@ class DataBase{ $groupe = new stdClass(); $groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe + $groupe->semestre = $groupeUID['semestre']; $groupe->userlist = $this->listeEtudiantsGroupe($groupe->nom, $semestre, $annee); // on charge la liste des utilisateurs de ce groupe @@ -273,6 +274,109 @@ class DataBase{ } + /******************************************************************/ + /*** retourne la liste des utilisateurs des groupes d'une année ***/ + /******************************************************************/ + public function listeEtudiantsTousGroupesAnnee($annee){ + /*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/ + $checkAnnee = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee"); + $checkAnnee->execute(array( + ':annee' => $annee + )); + + // si on trouve pas, on retourne "unknown_year" + if( !( $checkAnnee->fetch()['id'] ) ) + return 'unknown_year'; + + // on cherche tout les groupes du même semestre de la même année + $getGroupesUID = $this->pdo->prepare("SELECT DISTINCT g.nom, s.rang, s.nom as semestre ". + "FROM groupe as g, semestre as s, appartenance as app ". + "WHERE g.id_groupe = app.id_groupe ". + "AND s.id_semestre = app.id_semestre ". + + "AND s.annee = :annee ". + "ORDER BY g.nom"); + $getGroupesUID->execute(array( + ':annee' => $annee + )); + + $grouplist = array(); // contiendra tout les groupes + + // on parcourt tous les groupes + while( $groupeUID = $getGroupesUID->fetch() ){ + + $groupe = new stdClass(); + $groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe + $groupe->semestre = $groupeUID['semestre']; + + $groupe->userlist = $this->listeEtudiantsGroupe($groupe->nom, $groupeUID['rang'], $annee); // on charge la liste des utilisateurs de ce groupe + + array_push($grouplist, $groupe); // on l'ajoute au résultat + } + + return $grouplist; // sinon on retourne le tableau + + } + + /******************************************************************/ + /*** retourne la liste des utilisateurs des groupes d'une année ***/ + /******************************************************************/ + public function listeEtudiantsTousGroupesEnseignant($annee, $enseignant){ + /*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/ + $checkAnnee = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee"); + $checkAnnee->execute(array( + ':annee' => $annee + )); + + // si on trouve pas, on retourne "unknown_year" + if( !( $checkAnnee->fetch()['id'] ) ) + return 'unknown_year'; + + + /*** on cherche un utilisateur avec cet identifiant ***/ + $getEnseignantUID = $this->pdo->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :enseignant"); + $getEnseignantUID->execute(array( + ':enseignant' => $enseignant + )); + + // si on trouve, on le définit, sinon on retourne "unknown_user" + if( $enseignantUID = $getEnseignantUID->fetch()['id'] ) + $enseignantUID = $enseignantUID; + else + return 'unknown_user'; + + + // on cherche tout les groupes du même semestre de la même année + $getGroupesUID = $this->pdo->prepare("SELECT DISTINCT g.nom, s.rang, s.nom as semestre ". + "FROM groupe as g, semestre as s, appartenance as app, enseignement as ens, mcc_ue, mcc_module as mcc_m ". + "WHERE g.id_groupe = app.id_groupe ". + "AND s.id_semestre = app.id_semestre ". + + + "AND s.annee = :annee ". + "ORDER BY g.nom"); + $getGroupesUID->execute(array( + ':annee' => $annee + )); + + $grouplist = array(); // contiendra tout les groupes + + // on parcourt tous les groupes + while( $groupeUID = $getGroupesUID->fetch() ){ + + $groupe = new stdClass(); + $groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe + $groupe->semestre = $groupeUID['semestre']; + + $groupe->userlist = $this->listeEtudiantsGroupe($groupe->nom, $groupeUID['rang'], $annee); // on charge la liste des utilisateurs de ce groupe + + array_push($grouplist, $groupe); // on l'ajoute au résultat + } + + return $grouplist; // sinon on retourne le tableau + + } + /***********************************************/ /*** retourne le nom du groupe d'un étudiant ***/ diff --git a/manager/groups.php b/manager/groups.php index 19fa03e..788aaf0 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -92,9 +92,9 @@ require_once __ROOT__.'/manager/database.php'; break; - /************************************************/ - /* retourne les utilisateurs de tous les groupe */ - /************************************************/ + /*******************************************************************/ + /* retourne les utilisateurs de tous les groupes du semestre donné */ + /*******************************************************************/ case 'grouplist': $areSetParam = isset($request->semestre) && isset($request->annee); // les arguments existent $typeOkParam = $areSetParam && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings @@ -103,7 +103,52 @@ require_once __ROOT__.'/manager/database.php'; if( $anneeCheck ){ - $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupes($request->semestre, $request->annee); + $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesSemestre($request->semestre, $request->annee); + + if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs + $answer->grouplist = $grouplist; + $answer->request = 'success'; + }else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur + $answer->answer = $grouplist; + + }else + return 'param_error'; + break; + + /*****************************************************************************/ + /* retourne les utilisateurs de tous les groupes des modules d'un enseignant */ + /*****************************************************************************/ + case 'grouplistForTeacher': + $areSetParam = isset($request->annee) && isset($request->enseignant); // les arguments existent + $typeOkParam = $areSetParam && is_numeric($request->annee) && is_string($request->enseignant); // si c'est des strings + $anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + $enseignantCheck = $anneeCheck && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // enseignant (annee) bon format + + if( $enseignantCheck ){ + + $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $request->enseignant); + + if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs + $answer->grouplist = $grouplist; + $answer->request = 'success'; + }else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur + $answer->answer = $grouplist; + + }else + return 'param_error'; + break; + + /*******************************************************************/ + /* retourne les utilisateurs de tous les groupes d'une année donnée*/ + /*******************************************************************/ + case 'grouplistForYear': + $areSetParam = isset($request->annee); // les arguments existent + $typeOkParam = $areSetParam && is_numeric($request->annee); // si c'est des strings + $anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + + if( $anneeCheck ){ + + $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee); if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs $answer->grouplist = $grouplist; diff --git a/page/_JS/groups.js b/page/_JS/groups.js index b002066..0ad5b99 100755 --- a/page/_JS/groups.js +++ b/page/_JS/groups.js @@ -50,7 +50,7 @@ if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ / dnd.setDroppable(groups[i]); dnd.init(function(input, output){ // on demande un déplacement - var id_etudiant = input.children[0].innerHTML; + var id_etudiant = input.children[0].children[0].innerHTML; var nom_groupe = output.children[0].innerHTML; var request = { // on définit la requête pour API diff --git a/page/career.php b/page/career.php index f5c9d9d..7235b4e 100755 --- a/page/career.php +++ b/page/career.php @@ -53,9 +53,9 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s foreach($module['notes'] as $note){ echo ''; echo "".$note['module']." - ".$note['modulelib'].""; - echo ''.$note['intitule'].''; - echo ''.$note['valeur']." / ".$note['base'].''; - echo ''.$note['coefficient'].''; + echo '"'.$note['intitule'].'"'; + echo ''.number_format($note['valeur'], 2).' / '.$note['base'].''; + echo 'Coefficient '.$note['coefficient'].''; echo ''; } echo ''; @@ -107,8 +107,8 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s foreach($UE['notes'] as $note){ echo ''; echo "".$note['module']." - ".$note['modulelib'].""; - echo ''.$note['intitule'].''; - echo ''.$note['valeur']." / ".$note['base'].''; + echo '"'.$note['intitule'].'"'; + echo ''.number_format($note['valeur'], 2).' / '.$note['base'].''; echo ''.$note['coefficient'].''; echo ''; } diff --git a/page/groups.php b/page/groups.php index c410178..d3bad8a 100755 --- a/page/groups.php +++ b/page/groups.php @@ -15,67 +15,142 @@ require_once __ROOT__.'/manager/groups.php'; * *****************************************/ -?> - - - -
- affichage du même semestre +* +* + */ +if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // si connecté && utilisateur + echo "
"; - $request = new stdClass(); - $answer = new stdClass(); + $request = new stdClass(); + $answer = new stdClass(); - $request->level_1 = 'grouplist'; - $request->semestre = $_SESSION['semestre']; - $request->annee = $_SESSION['annee']; + $request->level_1 = 'grouplist'; + $request->semestre = $_SESSION['semestre']; + $request->annee = $_SESSION['annee']; - groups_switch_level_1($request, $answer); + groups_switch_level_1($request, $answer); - if( $answer->request == 'success' ){ // si pas d'erreur - ////////////////////////////////////////////////////////////// - - echo ""; - echo '
Identifiant'; - echo 'Prenom'; - echo 'Nom'; - echo 'Groupe'; - echo '
'; + if( $answer->request == 'success' ){ // si pas d'erreur + ////////////////////////////////////////////////////////////// + + echo ""; + echo '
Identifiant'; + echo 'Prenom'; + echo 'Nom'; + echo 'Semestre'; + echo 'Groupe'; + echo '
'; - foreach($answer->grouplist as $group){ // pour chaque groupe + foreach($answer->grouplist as $group){ // pour chaque groupe - if( count($group->userlist) > 0 ){ // s'il y a des utilisateurs + if( count($group->userlist) > 0 ){ // s'il y a des utilisateurs - echo ""; + echo "
"; - echo ''; - + echo ''; + - // pour chaque utilisateur - foreach($group->userlist as $user){ - echo ''; - echo "'; - echo ''; - echo ''; - echo ''; - echo ''; - } + // pour chaque utilisateur + foreach($group->userlist as $user){ + echo ''; + echo "'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } - // echo ''; + // echo ''; - echo ''; + echo ''; - echo '
".$user['identifiant'].''.$user['prenom'].''.$user['nom'].'Groupe '.$group->nom.'
".$user['identifiant'].''.$user['prenom'].''.$user['nom'].''.$group->semestre.'Groupe '.$group->nom.'
'; + echo ''; - } } - //////////////////////////////////////////////////////// - }else - echo "Erreur interne..."; + } + //////////////////////////////////////////////////////// + }else + echo "Erreur interne..."; + + echo '
'; +} + + + +/************************/ +/*** TOUS LES GROUPES ***/ +/************************/ +/* +* PROFESSEUR -> affichage des semestres en cours +* ADMINISTRATEUR -> affichage des semestres en cours +* +* + */ +if( $_SESSION['identifiant'] != null && ($_SESSION['droits'] == 'teacher' || $_SESSION['droits'] == 'admin') ){ // si connecté && prof ou admin + echo "
"; - } ?> -
+ $request = new stdClass(); + $answer = new stdClass(); + + $request->level_1 = 'grouplistForYear'; + $request->annee = $_SESSION['annee']; + + groups_switch_level_1($request, $answer); + + if( $answer->request == 'success' ){ // si pas d'erreur + ////////////////////////////////////////////////////////////// + + echo ""; + echo '
Identifiant'; + echo 'Prenom'; + echo 'Nom'; + echo 'Semestre'; + echo 'Groupe'; + echo '
'; + + foreach($answer->grouplist as $group){ // pour chaque groupe + + if( count($group->userlist) > 0 ){ // s'il y a des utilisateurs + + echo ""; + + echo ''; + + + // pour chaque utilisateur + foreach($group->userlist as $user){ + echo ''; + echo "'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + + // echo ''; + + echo ''; + + echo '
".$user['identifiant'].''.$user['prenom'].''.$user['nom'].''.$group->semestre.'Groupe '.$group->nom.'
'; + + } + } + //////////////////////////////////////////////////////// + }else + echo "Erreur interne..."; + + echo '
'; +} ?> + @@ -91,6 +166,11 @@ require_once __ROOT__.'/manager/groups.php'; /******************/ /*** MON GROUPE ***/ /******************/ +/* +* +* ETUDIANT -> son groupe de son semestre +* + */ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // si l'utilisateur est connecté et que c'est un élève echo "
"; @@ -124,15 +204,16 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s echo ''; echo ''; - echo ""; + echo "
"; // pour chaque utilisateur foreach($answer->userlist as $user){ echo ''; - echo "'; + echo "'; echo ''; echo ''; - echo ''; + echo ''; + echo ''; echo ''; } @@ -152,6 +233,72 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s + + + + + + les groupes inscrits aux modules qu'il enseigne +* + */ +if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'teacher' ){ // si l'utilisateur est connecté et que c'est un élève + echo "
"; + + $request = new stdClass(); $answer = new stdClass(); + $request->level_1 = 'grouplistForTeacher'; /******************************************************************************************************** A FAIRE **/ + $request->enseignant = $_SESSION['identifiant']; + $request->annee = $_SESSION['annee']; + groups_switch_level_1($request, $answer); + + if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe + //////////////////////////////////////////////////////////////////////////////// + + echo "
".$user['identifiant'].'".$user['identifiant'].''.$user['prenom'].''.$user['nom'].'Groupe '.$monGroupe.''.$user['semestre'].'Groupe '.$monGroupe.'
"; + echo ''; + echo ''; + echo ''; + echo '
'; + echo 'Groupe '.$monGroupe; + echo '
'; + + echo ""; + + // pour chaque utilisateur + foreach($answer->userlist as $user){ + echo ''; + echo "'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + + // echo ''; + + echo ''; + + echo '
".$user['identifiant'].''.$user['prenom'].''.$user['nom'].''.$user['semestre'].'Groupe '.$monGroupe.'
'; + //////////////////////////////////////////////////////////////////////////////// + }else + echo "Erreur interne."; + + echo '
'; +} ?> + + + + + + + + level_1 = 'grouplist'; + $request->level_1 = 'grouplistForYear'; $request->semestre = $i; $request->annee = $_SESSION['annee']; @@ -199,7 +346,7 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'admin' ){ // si // pour chaque utilisateur foreach($group->userlist as $user){ echo ''; - echo "".$user['identifiant'].''; + echo "".$user['identifiant'].''; echo ''.$user['prenom'].''; echo ''.$user['nom'].''; echo ''.$group->nom.''; diff --git a/src/userlist.json b/src/userlist.json index 1087247..c39e836 100755 --- a/src/userlist.json +++ b/src/userlist.json @@ -1,7 +1,7 @@ { "eleve1": { "permissions": "student", - "password" : "eleve1password" + "password" : "password" }, "mrd1609a": { @@ -11,27 +11,27 @@ "eleve2": { "permissions": "student", - "password" : "eleve2password" + "password" : "password" }, - "prof1": { + "lbh1609a": { "permissions": "teacher", - "password" : "prof1password" + "password" : "password" }, "prof2": { "permissions": "master", - "password" : "prof2password" + "password" : "password" }, "admin1": { "permissions": "admin", - "password" : "admin1password" + "password" : "password" }, "admin2": { "permissions": "admin", - "password" : "admin2password" + "password" : "password" } } \ No newline at end of file