Simplification d'affichage de etudiant@mon_groupe en utilisant une requête unique
This commit is contained in:
parent
7228ae443f
commit
6e5e07b1e7
|
@ -191,16 +191,22 @@ class DataBase{
|
|||
return 'error';
|
||||
}
|
||||
|
||||
/******************************************************/
|
||||
/*** retourne la liste des utilisateurs d'un groupe ***/
|
||||
/******************************************************/
|
||||
public function listeEtudiantsGroupe($formation, $groupe, $semestre, $annee){
|
||||
/******************************************************************/
|
||||
/*** retourne la liste des utilisateurs du groupe d'un étudiant ***/
|
||||
/******************************************************************/
|
||||
public function listeEtudiantsGroupe($etudiant, $formation, $semestre, $annee){
|
||||
// on vérifie que le groupe et le semestre existent
|
||||
if( !($groupeUID=groupRepo::UID($groupe)) ) return 'unknown_group'; else $groupeUID = (int) $groupeUID;
|
||||
if( !($semestreUID=semestreRepo::UID($formation, $semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
if( !($etudiantUID=userRepo::UID($etudiant, $semestreUID)) ) return 'unknown_user';
|
||||
if( !($groupeObj=groupRepo::forStudent($etudiantUID, $semestreUID)) ) return 'unknown_group';
|
||||
|
||||
$userlist = DataBase::delNumeric( groupRepo::membres($groupeObj['id'], $semestreUID) );
|
||||
$userlist['groupe'] = $groupeObj['nom'];
|
||||
// foreach($userlist as $iter=>$user)
|
||||
// $userlist[$iter]['groupe'] = $groupeObj['nom'];
|
||||
|
||||
// on retourne la liste des utilisateurs et on supprime les doublons à indices numériques
|
||||
return DataBase::delNumeric( groupRepo::membres($groupeUID, $semestreUID) );
|
||||
return $userlist;
|
||||
|
||||
}
|
||||
|
||||
|
@ -277,25 +283,6 @@ class DataBase{
|
|||
}
|
||||
|
||||
|
||||
/***********************************************/
|
||||
/*** retourne le nom du groupe d'un étudiant ***/
|
||||
/***********************************************/
|
||||
public function getGroupeEtudiant($etudiant, $formation, $semestre, $annee){
|
||||
// on vérifie que le semestre et l'utilisateur existent
|
||||
if( !($semestreUID=semestreRepo::UID($formation, $semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
|
||||
if( !($etudiantUID=userRepo::UID($etudiant, $semestreUID)) ) return 'unknown_user';
|
||||
|
||||
|
||||
// on retourne le nom
|
||||
if( $groupeObj = groupRepo::forStudent($etudiantUID, $semestreUID) )
|
||||
return $groupeObj['nom'];
|
||||
else // si on a pas trouvé de groupe pour cet étudiant à ce semestre
|
||||
return 'unknown_group';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************************************/
|
||||
/***** déplace un étudiant d'un groupe à un autre *****/
|
||||
|
|
|
@ -80,16 +80,15 @@ require_once __ROOT__.'/manager/database.php';
|
|||
/*****************************************/
|
||||
case 'userlist': if( permission('student') ){
|
||||
|
||||
$areSetParam = isset($request->groupe) && isset($request->semestre) && isset($request->annee) && isset($request->formation); // les arguments existent
|
||||
$typeOkParam = $areSetParam && is_string($request->groupe) && is_numeric($request->semestre) && is_numeric($request->annee) && is_numeric($request->formation); // si c'est des strings
|
||||
$nEmptyParam = $typeOkParam && strlen($request->groupe) > 0; // d'au moins 1 caractère
|
||||
$groupeCheck = $nEmptyParam && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format
|
||||
$formationCheck = $groupeCheck && preg_match('/^[1-4]{1}$/i', $request->formation); // formation (formation) bon format
|
||||
$semestreCheck = $formationCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
|
||||
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||
$areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee) && isset($request->formation); // les arguments existent
|
||||
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_numeric($request->semestre) && is_numeric($request->annee) && is_numeric($request->formation); // si c'est des strings
|
||||
$etudiantCheck = $typeOkParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format
|
||||
$formationCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->formation); // formation (formation) bon format
|
||||
$semestreCheck = $formationCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
|
||||
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||
|
||||
if( $anneeCheck ){ // si tout les paramètres sont bons
|
||||
$userlist = DataBase::getInstance()->listeEtudiantsGroupe($request->formation, $request->groupe, $request->semestre, $request->annee);
|
||||
$userlist = DataBase::getInstance()->listeEtudiantsGroupe($request->etudiant, $request->formation, $request->semestre, $request->annee);
|
||||
|
||||
if( is_array($userlist) ){ // si on a récupéré la liste des utilisateurs
|
||||
$answer->userlist = $userlist;
|
||||
|
@ -226,32 +225,6 @@ require_once __ROOT__.'/manager/database.php';
|
|||
$answer->request = 'permission_error';
|
||||
break;
|
||||
|
||||
|
||||
/**********************************************/
|
||||
/* retourne le nom du groupe d'un utilisateur */
|
||||
/**********************************************/
|
||||
case 'get': if( permission('student') ){
|
||||
|
||||
$areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent
|
||||
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings
|
||||
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0; // d'au moins 1 caractère
|
||||
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format
|
||||
$semestreCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
|
||||
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||
|
||||
|
||||
$groupe = DataBase::getInstance()->getGroupeEtudiant($request->etudiant, $_SESSION['formation'], $request->semestre, $request->annee);
|
||||
|
||||
if( $groupe != 'error' ){ // si on a récupéré quelque chose
|
||||
$answer->groupe = $groupe;
|
||||
$answer->request = 'success';
|
||||
}else // si on a pas "success", alors c'est que $groupe est un message d'erreur
|
||||
$answer->request = 'error';
|
||||
|
||||
}else
|
||||
$answer->request = 'permission_error';
|
||||
break;
|
||||
|
||||
/************************************************/
|
||||
/* déplace un étudiant de son groupe à un autre */
|
||||
/************************************************/
|
||||
|
|
|
@ -132,62 +132,48 @@ if( permission('student') ){ // si connecté && utilisateur
|
|||
*/
|
||||
if( permission('student') ){ // si l'utilisateur est connecté et que c'est un élève
|
||||
|
||||
$request = new stdClass(); $answer = new stdClass();
|
||||
$request = new stdClass(); $answer = new stdClass();
|
||||
$request->level_1 = 'userlist';
|
||||
$request->etudiant = $_SESSION['identifiant'];
|
||||
$request->formation = $_SESSION['formation'];
|
||||
$request->semestre = $_SESSION['semestre'];
|
||||
$request->annee = $_SESSION['annee'];
|
||||
groups_switch_level_1($request, $answer);
|
||||
|
||||
$request->level_1 = 'get';
|
||||
$request->etudiant = $_SESSION['identifiant'];
|
||||
$request->semestre = $_SESSION['semestre'];
|
||||
$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 "<section name='studentsgroup' data-title='Mon groupe' class='basic'>";
|
||||
|
||||
if( $answer->request == 'success' ){ // si pas d'erreur
|
||||
$monGroupe = $answer->groupe;
|
||||
echo "<table class='basic col1'><thead>";
|
||||
echo '<tr>';
|
||||
echo '<th colspan=5>';
|
||||
echo 'Groupe '.$answer->userlist['groupe'];
|
||||
echo '</th>';
|
||||
echo '</tr>';
|
||||
echo '</thead></table>';
|
||||
|
||||
$request = new stdClass(); $answer = new stdClass();
|
||||
$request->level_1 = 'userlist';
|
||||
$request->formation = $_SESSION['formation'];
|
||||
$request->groupe = $monGroupe;
|
||||
$request->semestre = $_SESSION['semestre'];
|
||||
$request->annee = $_SESSION['annee'];
|
||||
groups_switch_level_1($request, $answer);
|
||||
echo "<table class='basic col5'><tbody>";
|
||||
|
||||
if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
echo "<section name='studentsgroup' data-title='Mon groupe' class='basic'>";
|
||||
// pour chaque utilisateur
|
||||
foreach($answer->userlist as $user){ if( $user != $answer->userlist['groupe'] ){
|
||||
echo '<tr>';
|
||||
echo "<td><span class=link>".$user['identifiant'].'</span></td>';
|
||||
echo '<td>'.$user['prenom'].'</td>';
|
||||
echo '<td>'.$user['nom'].'</td>';
|
||||
echo '<td>'.$user['semestre'].'</td>';
|
||||
echo '<td>Groupe <span class=stressed>'.$answer->userlist['groupe'].'</span></td>';
|
||||
echo '</tr>';
|
||||
}}
|
||||
|
||||
echo "<table class='basic col1'><thead>";
|
||||
echo '<tr>';
|
||||
echo '<th colspan=5>';
|
||||
echo 'Groupe '.$monGroupe;
|
||||
echo '</th>';
|
||||
echo '</tr>';
|
||||
echo '</thead></table>';
|
||||
// echo '<tr><td colspan=5 class=more></td></tr>';
|
||||
|
||||
echo "<table class='basic col5'><tbody>";
|
||||
|
||||
// pour chaque utilisateur
|
||||
foreach($answer->userlist as $user){
|
||||
echo '<tr>';
|
||||
echo "<td><span class=link>".$user['identifiant'].'</span></td>';
|
||||
echo '<td>'.$user['prenom'].'</td>';
|
||||
echo '<td>'.$user['nom'].'</td>';
|
||||
echo '<td>'.$user['semestre'].'</td>';
|
||||
echo '<td>Groupe <span class=stressed>'.$monGroupe.'</span></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
// echo '<tr><td colspan=5 class=more></td></tr>';
|
||||
|
||||
echo '</tbody></table>';
|
||||
echo '</tbody></table>';
|
||||
|
||||
|
||||
echo '</section>';
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
}else
|
||||
echo "<section name='studentsgroup' data-title='Mon groupe' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
|
||||
}else
|
||||
echo "<section name='studentsgroup' data-title='Mon groupe' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
|
||||
echo '</section>';
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
}else
|
||||
echo "<section name='studentsgroup' data-title='Mon groupe' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
|
||||
|
||||
echo '</section>';
|
||||
} ?>
|
||||
|
|
Loading…
Reference in New Issue