";
+ 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 '
';
+ 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 "
".$user['identifiant'].'
';
- echo '
'.$user['prenom'].'
';
- echo '
'.$user['nom'].'
';
- echo '
Groupe '.$group->nom.'
';
- echo '
';
- }
+ // pour chaque utilisateur
+ foreach($group->userlist as $user){
+ echo '
';
+ echo "
".$user['identifiant'].'
';
+ echo '
'.$user['prenom'].'
';
+ echo '
'.$user['nom'].'
';
+ echo '
'.$group->semestre.'
';
+ echo '
Groupe '.$group->nom.'
';
+ echo '
';
+ }
- // echo '
';
+ // echo '
';
- echo '';
+ echo '';
- echo '
';
+ 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 "
".$user['identifiant'].'
';
+ echo '
'.$user['prenom'].'
';
+ echo '
'.$user['nom'].'
';
+ echo '
'.$group->semestre.'
';
+ echo '
Groupe '.$group->nom.'
';
+ echo '
';
+ }
+
+ // echo '
';
+
+ echo '';
+
+ echo '
';
+
+ }
+ }
+ ////////////////////////////////////////////////////////
+ }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 "
".$user['identifiant'].'
';
+ echo "
".$user['identifiant'].'
';
echo '
'.$user['prenom'].'
';
echo '
'.$user['nom'].'
';
- echo '
Groupe '.$monGroupe.'
';
+ echo '
'.$user['semestre'].'
';
+ echo '
Groupe '.$monGroupe.'
';
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 "
";
+ echo '
';
+ echo '
';
+ echo 'Groupe '.$monGroupe;
+ echo '
';
+ echo '
';
+ echo '
';
+
+ echo "
";
+
+ // pour chaque utilisateur
+ foreach($answer->userlist as $user){
+ echo '