Refactor page/groups.php@teacher
This commit is contained in:
parent
e2466571f1
commit
06a119f43a
|
@ -218,10 +218,10 @@ class DataBase{
|
|||
public function listeEtudiantsTousGroupesAnnee($annee, $semestre_pair, $pSemestre=null, $pGroupe=null){ // pSemestre/pGroupe optionnels
|
||||
// définition des paramètres optionnels
|
||||
$semestreOpt = '%';
|
||||
if( $pSemestre != null ){ $semestreOpt = $pSemestre; } // semestre donné uniquement (si param non null)
|
||||
if( $pSemestre != null ) $semestreOpt = $pSemestre; // semestre donné uniquement (si param non null)
|
||||
|
||||
$groupeOpt = '%';
|
||||
if( $pGroupe != null ){ $groupeOpt = $pGroupe; } // si le groupe est donné, on le définit
|
||||
if( $pGroupe != null ) $groupeOpt = $pGroupe; // si le groupe est donné, on le définit
|
||||
|
||||
|
||||
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
|
||||
|
@ -230,9 +230,10 @@ class DataBase{
|
|||
if( !( $checkAnnee->fetch()['id'] ) ) return 'unknown_year';
|
||||
|
||||
|
||||
// on récupère la liste des groupes
|
||||
$grouplist = DataBase::delNumeric( groupRepo::forYear($semestre_pair, $annee, $pSemestre, $pGroupe) );
|
||||
|
||||
foreach($grouplist as $iter=>$val)
|
||||
foreach($grouplist as $iter=>$val) // pour chaque groupe un récupère la liste des utilisateurs
|
||||
$grouplist[$iter]['userlist'] = groupRepo::membres($grouplist[$iter]['id'], $grouplist[$iter]['id_semestre']);
|
||||
|
||||
return $grouplist; // sinon on retourne le tableau
|
||||
|
@ -245,72 +246,28 @@ class DataBase{
|
|||
public function listeEtudiantsTousGroupesEnseignant($annee, $semestre_pair, $enseignant, $pSemestre, $pGroupe){
|
||||
// définition des paramètres optionnels
|
||||
$semestreOpt = '%';
|
||||
if( $pSemestre != null ){ $semestreOpt = $pSemestre; } // semestre donné uniquement (si param non null)
|
||||
if( $pSemestre != null ) $semestreOpt = $pSemestre; // semestre donné uniquement (si param non null)
|
||||
|
||||
$groupeOpt = '%';
|
||||
if( $pGroupe != null ){ $groupeOpt = $pGroupe; } // si le groupe est donné, on le définit
|
||||
if( $pGroupe != null ) $groupeOpt = $pGroupe; // si le groupe est donné, on le définit
|
||||
|
||||
|
||||
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
|
||||
/*** on cherche un semestre avec cette année ***/
|
||||
$checkAnnee = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee");
|
||||
$checkAnnee->execute(array(
|
||||
':annee' => $annee
|
||||
));
|
||||
$checkAnnee->execute(array( ':annee' => $annee ));
|
||||
if( !( $checkAnnee->fetch()['id'] ) ) return 'unknown_year';
|
||||
|
||||
// si on trouve pas, on retourne "unknown_year"
|
||||
if( !( $checkAnnee->fetch()['id'] ) )
|
||||
return 'unknown_year';
|
||||
// on cherche si cet enseignant enseigne un semestre courant de cette année
|
||||
if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher';
|
||||
|
||||
|
||||
// si on trouve pas, on retourne "unknown_user"
|
||||
if( !($enseignantUID=userRepo::UID($enseignant)) ) return 'unknown_user';
|
||||
// on récupère la liste des groupes
|
||||
$grouplist = DataBase::delNumeric( groupRepo::forTeacher($enseignantUID, $semestre_pair, $annee, $pSemestre, $pGroupe) );
|
||||
|
||||
|
||||
// on cherche tout les groupes du même semestre de la même année
|
||||
$getGroupesUID = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, s.id_semestre, s.nom as semestre, s.rang, g.nom as nom ".
|
||||
"FROM module as m, utilisateur as u, utilisateur as eleve, groupe as g, enseignement as ens, mcc_ue, mcc_module as mcc_m, semestre as s, appartenance as app ".
|
||||
"WHERE mcc_ue.id_semestre = s.id_semestre ".
|
||||
"AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ".
|
||||
|
||||
"AND mcc_m.id_module = m.id_module ".
|
||||
"AND mcc_m.id_mcc_module = ens.id_mcc_module ".
|
||||
|
||||
"AND ens.id_enseignant = u.identifiant ".
|
||||
|
||||
"AND app.id_etudiant = eleve.identifiant ".
|
||||
"AND app.id_semestre = s.id_semestre ".
|
||||
"AND app.id_groupe = g.id_groupe ".
|
||||
|
||||
"AND g.nom LIKE '".$groupeOpt."' ".
|
||||
"AND s.nom LIKE '".$semestreOpt."' ".
|
||||
"AND s.rang % 2 = :semestre_pair ".
|
||||
"AND s.annee = :annee ".
|
||||
"AND u.identifiant = :enseignantUID ".
|
||||
"ORDER BY s.rang, g.nom");
|
||||
$getGroupesUID->execute(array(
|
||||
// ':groupeOpt' => $groupeOpt,
|
||||
// ':semestreOpt' => $semestreOpt,
|
||||
':annee' => $annee,
|
||||
':semestre_pair' => ($semestre_pair) ? '0' : '1',
|
||||
':enseignantUID' => $enseignantUID
|
||||
));
|
||||
|
||||
$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 = groupRepo::membres($groupeUID['id'], $groupeUID['id_semestre']); // on charge la liste des utilisateurs de ce groupe
|
||||
|
||||
array_push($grouplist, $groupe); // on l'ajoute au résultat
|
||||
}
|
||||
foreach($grouplist as $iter=>$val) // pour chaque groupe un récupère la liste des utilisateurs
|
||||
$grouplist[$iter]['userlist'] = groupRepo::membres($grouplist[$iter]['id'], $grouplist[$iter]['id_semestre']);
|
||||
|
||||
return $grouplist; // sinon on retourne le tableau
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -202,6 +202,56 @@ class groupRepo extends DBAccess{
|
|||
|
||||
|
||||
|
||||
/* RETOURNE TOUS LES GROUPES QUI ONT UN ENSEIGNANT PARTICULIER POUR UNE ANNEE DONNEE
|
||||
*
|
||||
* @enseignant<String> l'UID de l'enseignant recherché
|
||||
* @semestre_pair<Boolean> VRAI si le semestre courant est pair
|
||||
* @annee<int> l'année recherchée
|
||||
*
|
||||
* @pSemestre<int> ***OPTIONNEL*** le nom du semestre
|
||||
* @pGroupe<String> ***OPTIONNEL*** le nom du groupe
|
||||
*
|
||||
*
|
||||
* @return groupes<Array> retourne la liste des groupes correspondant aux critères
|
||||
*
|
||||
*/
|
||||
public static function forTeacher($enseignant, $semestre_pair, $annee, $pSemestre=null, $pGroupe=null){
|
||||
// si le semestre est donné, on cherche uniquement celui-ci, sinon on les affiche tous
|
||||
$semestreOpt = '%';
|
||||
if( $pSemestre != null ){ $semestreOpt = $pSemestre; }
|
||||
|
||||
// si le groupe est donné, on cherche uniquement celui-ci, sinon on les affiche tous
|
||||
$groupeOpt = '%';
|
||||
if( $pGroupe != null ){ $groupeOpt = $pGroupe; }
|
||||
|
||||
|
||||
$getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre ".
|
||||
"FROM module as m, utilisateur as u, utilisateur as eleve, groupe as g, enseignement as ens, mcc_ue, mcc_module as mcc_m, semestre as s, appartenance as app ".
|
||||
"WHERE mcc_ue.id_semestre = s.id_semestre ".
|
||||
"AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ".
|
||||
|
||||
"AND mcc_m.id_module = m.id_module ".
|
||||
"AND mcc_m.id_mcc_module = ens.id_mcc_module ".
|
||||
|
||||
"AND ens.id_enseignant = u.identifiant ".
|
||||
|
||||
"AND app.id_etudiant = eleve.identifiant ".
|
||||
"AND app.id_semestre = s.id_semestre ".
|
||||
"AND app.id_groupe = g.id_groupe ".
|
||||
|
||||
"AND g.nom LIKE '".$groupeOpt."' ".
|
||||
"AND s.nom LIKE '".$semestreOpt."' ".
|
||||
"AND u.identifiant = :enseignant ".
|
||||
"AND s.rang % 2 = :semestre_pair ".
|
||||
"AND s.annee = :annee ".
|
||||
"ORDER BY s.rang, g.nom");
|
||||
$getGroupeList->execute(array( ':enseignant' => $enseignant, ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee ));
|
||||
|
||||
return DataBase::delNumeric( $getGroupeList->fetchAll() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* RETOURNE TOUS LES GROUPES DES SEMESTRES COURANT D'UNE ANNÉE
|
||||
*
|
||||
* @semestre_pair<Boolean> VRAI si le semestre courant est pair
|
||||
|
|
|
@ -328,14 +328,14 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un
|
|||
echo "<select name='semestre'>";
|
||||
echo "<option value='*'>Tous les semestres</option>";
|
||||
foreach($answer->grouplist as $group){
|
||||
if( $lastSemestre == null || $lastSemestre != $group->semestre ){
|
||||
if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
|
||||
|
||||
if( $group->semestre == $semestreOpt ) // si c'est le semestre séléctionné
|
||||
echo "<option value='".$group->semestre."' selected>".$group->semestre.'</option>';
|
||||
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||
echo "<option value='".$group['semestre']."' selected>".$group['semestre'].'</option>';
|
||||
else // sinon on affiche normalement
|
||||
echo "<option value='".$group->semestre."'>".$group->semestre.'</option>';
|
||||
echo "<option value='".$group['semestre']."'>".$group['semestre'].'</option>';
|
||||
|
||||
$lastSemestre = $group->semestre;
|
||||
$lastSemestre = $group['semestre'];
|
||||
}
|
||||
}
|
||||
echo "<select>";
|
||||
|
@ -348,12 +348,12 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un
|
|||
foreach($answer->grouplist as $group){
|
||||
if( $lastGroupe == null || $lastGroupe != $group->nom ){
|
||||
|
||||
if( $group->nom == $groupeOpt ) // si c'est le groupe séléctionné
|
||||
echo "<option value='".$group->nom."' selected>".$group->nom.'</option>';
|
||||
if( $group['nom'] == $groupeOpt ) // si c'est le groupe séléctionné
|
||||
echo "<option value='".$group['nom']."' selected>".$group['nom'].'</option>';
|
||||
else
|
||||
echo "<option value='".$group->nom."'>".$group->nom.'</option>';
|
||||
echo "<option value='".$group['nom']."'>".$group['nom'].'</option>';
|
||||
|
||||
$lastGroupe = $group->nom;
|
||||
$lastGroupe = $group['nom'];
|
||||
}
|
||||
}
|
||||
echo "<select>";
|
||||
|
@ -368,7 +368,7 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un
|
|||
|
||||
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 "<table class='basic margin col5'>";
|
||||
|
||||
|
@ -376,13 +376,13 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un
|
|||
|
||||
|
||||
// pour chaque utilisateur
|
||||
foreach($group->userlist as $user){
|
||||
foreach($group['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>'.$group->semestre.'</td>';
|
||||
echo '<td>Groupe <span class=stressed>'.$group->nom.'</span></td>';
|
||||
echo '<td>'.$group['semestre'].'</td>';
|
||||
echo '<td>Groupe <span class=stressed>'.$group['nom'].'</span></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue