Affinage par formation pour enseignant@mes_groupes + admin@tous_les_groupes + utilisation d'UIDs
This commit is contained in:
parent
f0643a8d05
commit
6efa758cab
|
@ -175,8 +175,9 @@ class groupRepo extends DBAccess{
|
|||
public static function membres($groupeUID, $semestreUID){
|
||||
// si le groupe existe => on récupère ses utilisateurs
|
||||
$getMembres = DataBase::getPDO()->prepare("SELECT u.identifiant, u.prenom, u.nom, u.mail, u.droits, s.nom as semestre, g.id_groupe, g.nom as groupe ".
|
||||
"FROM utilisateur as u, groupe as g, semestre as s, appartenance as app ".
|
||||
"WHERE u.identifiant = app.id_etudiant ".
|
||||
"FROM utilisateur as u, groupe as g, semestre as s, appartenance as app, formation as f ".
|
||||
"WHERE s.id_formation = f.id_formation ".
|
||||
"AND u.identifiant = app.id_etudiant ".
|
||||
"AND g.id_groupe = app.id_groupe ".
|
||||
"AND app.id_semestre = app.id_semestre ". // à virer (peut-être)
|
||||
|
||||
|
@ -205,12 +206,14 @@ class groupRepo extends DBAccess{
|
|||
*
|
||||
*/
|
||||
public static function forStudent($etudiant, $semestre){
|
||||
$getGroupe = DataBase::getPDO()->prepare("SELECT DISTINCT app.id_appartenance, g.id_groupe as id, g.nom ".
|
||||
"FROM groupe as g, appartenance as app ".
|
||||
"WHERE app.id_groupe = g.id_groupe ".
|
||||
$getGroupe = DataBase::getPDO()->prepare("SELECT DISTINCT app.id_appartenance, g.id_groupe as id, g.nom, s.id_semestre, s.nom as semestre, f.id_formation, f.code as formation, f.nom as nom_formation ".
|
||||
"FROM groupe as g, appartenance as app, formation as f, semestre as s ".
|
||||
"WHERE s.id_formation = f.id_formation ".
|
||||
"AND app.id_groupe = g.id_groupe ".
|
||||
"AND app.id_semestre = s.id_semestre ".
|
||||
|
||||
"AND app.id_etudiant = :etudiant ".
|
||||
"AND app.id_semestre = :semestre ".
|
||||
"AND s.id_semestre = :semestre ".
|
||||
"ORDER BY g.nom");
|
||||
$getGroupe->execute(array( ':etudiant' => $etudiant, ':semestre' => $semestre ));
|
||||
|
||||
|
@ -244,9 +247,10 @@ class groupRepo extends DBAccess{
|
|||
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 ".
|
||||
$getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre, f.id_formation, f.code as formation, f.nom as nom_formation ".
|
||||
"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, formation as f ".
|
||||
"WHERE s.id_formation = f.id_formation ".
|
||||
"AND 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 ".
|
||||
|
@ -325,9 +329,10 @@ class groupRepo extends DBAccess{
|
|||
$semestrePair0 = '0'; $semestrePair1 = '1';
|
||||
if( is_bool($semestre_pair) ){ $semestrePair0 = $semestre_pair; $semestrePair1 = $semestre_pair; }
|
||||
|
||||
$getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre ".
|
||||
"FROM groupe as g, semestre as s, appartenance as app ".
|
||||
"WHERE g.id_groupe = app.id_groupe ".
|
||||
$getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre, f.id_formation, f.code as formation, f.nom as nom_formation ".
|
||||
"FROM groupe as g, semestre as s, appartenance as app, formation as f ".
|
||||
"WHERE s.id_formation = f.id_formation ".
|
||||
"AND g.id_groupe = app.id_groupe ".
|
||||
"AND s.id_semestre = app.id_semestre ".
|
||||
|
||||
"AND g.nom LIKE '".$groupeOpt."' ".
|
||||
|
|
|
@ -2,37 +2,6 @@
|
|||
|
||||
|
||||
|
||||
// si aucune sous-partie n'est active, on active la première
|
||||
if( document.querySelector('#CONTAINER hgroup.active') == null )
|
||||
selectSubSection( document.querySelector('#CONTAINER hgroup') );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* Gestion du déroulement des tableaux des groupes */
|
||||
function afficherCacherGroupes(e){
|
||||
e.preventDefault();
|
||||
|
||||
// s'il s'agit de la case "Voir plus"
|
||||
if( e.target.className == 'more' ){
|
||||
var thead = e.target.parentNode.parentNode.parentNode.children[0];
|
||||
thead.className = (thead.className=='active') ? '' : 'active';
|
||||
}
|
||||
}
|
||||
|
||||
if( !afficherCacherGroupesDefined )
|
||||
DOM.CONTAINER.addEventListener('click', afficherCacherGroupes, false);
|
||||
|
||||
var afficherCacherGroupesDefined = true;
|
||||
|
||||
|
||||
|
||||
|
||||
/* on définit le Drag'n'Drop */
|
||||
// var dnd = new DragnDrop();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -98,11 +67,12 @@ if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ /
|
|||
|
||||
}
|
||||
|
||||
/***************************************************/
|
||||
/*** GESTION DES SELECT POUR AFFINER LES GROUPES ***/
|
||||
/***************************************************/
|
||||
|
||||
/**********************************************************************/
|
||||
/*** GESTION DES SELECT/TABLES D'AFFINAGES POUR AFFINER LES GROUPES ***/
|
||||
/**********************************************************************/
|
||||
var selectList = document.querySelectorAll("#CONTAINER > section[name] > select[name=groupe]");
|
||||
var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=semestre]");
|
||||
var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=semestre], #CONTAINER > section[name] > table.partlist[name=formation]");
|
||||
|
||||
// GESTION DE L'AFFINAGE PAR SEMESTRE //
|
||||
for( var i = 0 ; i < partList.length ; i++ ){
|
||||
|
@ -110,11 +80,26 @@ for( var i = 0 ; i < partList.length ; i++ ){
|
|||
partList[i].addEventListener('click', function(e){
|
||||
var tableauParent = e.target.parentNode.parentNode.parentNode;
|
||||
|
||||
if( tableauParent.tagName == 'TABLE' && tableauParent.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('value') ){
|
||||
pageM.vars[1] = 's:'+e.target.dataset.value;
|
||||
if( tableauParent.tagName == 'TABLE' && e.target.dataset.hasOwnProperty('value') ){
|
||||
|
||||
/* SI c'est une affinage par FORMATION */
|
||||
if( tableauParent.getAttribute('name') == 'formation' ){
|
||||
pageM.vars[1] = 'f:'+e.target.dataset.value;
|
||||
if( pageM.vars.length > 2 ) // si un deuxième affinage existe, on le supprime lors du choix de la formation
|
||||
pageM.vars.pop();
|
||||
}
|
||||
|
||||
/* SI c'est une affinage par SEMESTRE */
|
||||
if( tableauParent.getAttribute('name') == 'semestre' )
|
||||
pageM.vars[2] = 's:'+e.target.dataset.value;
|
||||
|
||||
// si la formation n'est pas définie, on l'active
|
||||
if( !/^f:/.test(pageM.vars[1]) )
|
||||
if( document.querySelector('#CONTAINER > section[name] > table.partlist[name=formation] td[data-value].active') != null )
|
||||
pageM.vars[1] = 'f:'+document.querySelector('#CONTAINER > section[name] > table.partlist[name=formation] td[data-value].active').dataset.value;
|
||||
|
||||
// si on a '*' comme valeur, on l'enlève
|
||||
if( /\*$/.test(pageM.vars[1]) )
|
||||
if( /\*$/.test(pageM.vars[2]) )
|
||||
pageM.vars.pop();
|
||||
|
||||
reload();
|
||||
|
@ -130,9 +115,15 @@ for( var i = 0 ; i < selectList.length ; i++ ){
|
|||
selectList[i].addEventListener('change', function(e){
|
||||
|
||||
if( e.target.tagName == 'SELECT' && e.target.getAttribute('name') == 'groupe' ){
|
||||
pageM.vars[1] = 'g:'+e.target.value;
|
||||
pageM.vars[2] = 'g:'+e.target.value;
|
||||
|
||||
if( /\*$/.test(pageM.vars[1]) ) // si on a '*' comme valeur, on l'enlève
|
||||
// si la formation n'est pas définie, on l'active
|
||||
if( !/^f:/.test(pageM.vars[1]) )
|
||||
if( document.querySelector('#CONTAINER > section[name] > table.partlist[name=formation] td[data-value].active') != null )
|
||||
pageM.vars[1] = 'f:'+document.querySelector('#CONTAINER > section[name] > table.partlist[name=formation] td[data-value].active').dataset.value;
|
||||
|
||||
// si on a '*' comme valeur, on l'enlève
|
||||
if( /\*$/.test(pageM.vars[2]) )
|
||||
pageM.vars.pop();
|
||||
|
||||
reload();
|
||||
|
|
352
page/groups.php
352
page/groups.php
|
@ -21,6 +21,7 @@ require_once __ROOT__.'/manager/groups.php';
|
|||
// on initialise les paramètres optionnels
|
||||
$semestreOpt = null;
|
||||
$groupeOpt = null;
|
||||
$formationOpt = null;
|
||||
|
||||
// on cherche dans toutes les variables _get si on trouve des paramètres
|
||||
foreach($_POST as $k=>$v){
|
||||
|
@ -31,9 +32,14 @@ require_once __ROOT__.'/manager/groups.php';
|
|||
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
|
||||
$semestreOpt = $m[1];
|
||||
|
||||
if( preg_match('/^f:(.+)$/', $k, $m) ) // f:codeFormation
|
||||
$formationOpt = $m[1];
|
||||
|
||||
}
|
||||
|
||||
|
||||
$groupeOpt = ($groupeOpt == null || $groupeOpt == '*') ? null : $groupeOpt;
|
||||
$semestreOpt = ($semestreOpt == null || $semestreOpt == '*') ? null : $semestreOpt;
|
||||
$formationOpt = ($formationOpt == null || $formationOpt == '*') ? null : $formationOpt;
|
||||
|
||||
/************************/
|
||||
/*** TOUS LES GROUPES ***/
|
||||
|
@ -102,109 +108,6 @@ if( permission('student') ){ // si connecté && utilisateur
|
|||
|
||||
|
||||
|
||||
/************************/
|
||||
/*** TOUS LES GROUPES ***/
|
||||
/************************/
|
||||
/*
|
||||
* PROFESSEUR -> affichage des semestres en cours
|
||||
* ADMINISTRATEUR -> affichage des semestres en cours
|
||||
*
|
||||
*
|
||||
*/
|
||||
if( false && permission('teacher') ){ // si connecté && prof
|
||||
|
||||
$request = new stdClass();
|
||||
$answer = new stdClass();
|
||||
|
||||
$request->level_1 = 'grouplistForYear';
|
||||
$request->annee = $_SESSION['annee'];
|
||||
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
|
||||
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
|
||||
|
||||
groups_switch_level_1($request, $answer);
|
||||
|
||||
if( $answer->request == 'success' ){ // si pas d'erreur
|
||||
//////////////////////////////////////////////////////////////
|
||||
echo "<section name='allgroups' data-title='tous les groupes' class='basic'>";
|
||||
|
||||
/* select pour SEMESTRES */
|
||||
$lastSemestre = null;
|
||||
|
||||
echo "<select name='semestre'>";
|
||||
echo "<option value='*'>Tous les semestres</option>";
|
||||
foreach($answer->grouplist as $group){
|
||||
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>';
|
||||
else // sinon on affiche normalement
|
||||
echo "<option value='".$group['semestre']."'>".$group['semestre'].'</option>';
|
||||
$lastSemestre = $group['semestre'];
|
||||
}
|
||||
}
|
||||
echo "<select>";
|
||||
|
||||
/* select pour GROUPES */
|
||||
$lastGroupe = null;
|
||||
|
||||
echo "<select name='groupe'>";
|
||||
echo "<option value='*'>Tous les groupes</option>";
|
||||
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>';
|
||||
else
|
||||
echo "<option value='".$group['nom']."'>".$group['nom'].'</option>';
|
||||
|
||||
$lastGroupe = $group['nom'];
|
||||
}
|
||||
}
|
||||
echo "<select>";
|
||||
|
||||
|
||||
echo "<table class='basic col5'><thead><tr>";
|
||||
echo '<th>Identifiant</td>';
|
||||
echo '<th>Prenom</td>';
|
||||
echo '<th>Nom</td>';
|
||||
echo '<th>Semestre</td>';
|
||||
echo '<th>Groupe</td>';
|
||||
echo '</tr></thead></table>';
|
||||
|
||||
foreach($answer->grouplist as $group){ // pour chaque groupe
|
||||
|
||||
if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
|
||||
|
||||
echo "<table class='basic margin col5'>";
|
||||
|
||||
echo '<tbody>';
|
||||
|
||||
|
||||
// pour chaque utilisateur
|
||||
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 '</tr>';
|
||||
}
|
||||
|
||||
// echo '<tr><td colspan=5 class=more></td></tr>';
|
||||
|
||||
echo '</tbody>';
|
||||
|
||||
echo '</table>';
|
||||
|
||||
}
|
||||
}
|
||||
echo '</section>';
|
||||
////////////////////////////////////////////////////////
|
||||
}else
|
||||
echo "<section name='allgroups' data-title='tous les groupes' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
|
||||
|
||||
} ?>
|
||||
|
||||
|
||||
|
||||
|
@ -213,11 +116,6 @@ if( false && permission('teacher') ){ // si connecté && prof
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- mon groupe -->
|
||||
|
||||
<?php
|
||||
/******************/
|
||||
/*** MON GROUPE ***/
|
||||
/******************/
|
||||
|
@ -306,68 +204,108 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un
|
|||
if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un élève
|
||||
|
||||
$request = new stdClass(); $answer = new stdClass();
|
||||
$requestPourListeGroupes = new stdClass();$answerPourListeGroupes = new stdClass();
|
||||
|
||||
|
||||
$request->level_1 = 'grouplistForTeacher';
|
||||
$request->enseignant = $_SESSION['identifiant'];
|
||||
$request->annee = $_SESSION['annee'];
|
||||
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
|
||||
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
|
||||
|
||||
$requestPourListeGroupes->level_1 = 'grouplistForTeacher';
|
||||
$requestPourListeGroupes->enseignant = $_SESSION['identifiant'];
|
||||
$requestPourListeGroupes->annee = $_SESSION['annee'];
|
||||
|
||||
groups_switch_level_1($request, $answer);
|
||||
groups_switch_level_1($requestPourListeGroupes, $answerPourListeGroupes);
|
||||
|
||||
if( $answer->request == 'success' && $answerPourListeGroupes->request == 'success' && count($answerPourListeGroupes->grouplist) > 0 ){ // si on a bien récupéré les membres du groupe
|
||||
if( $answer->request == 'success' && $answer->request == 'success' && count($answer->grouplist) > 0 ){ // si on a bien récupéré les membres du groupe
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'>";
|
||||
|
||||
/* select pour SEMESTRES */
|
||||
$lastSemestre = null;
|
||||
|
||||
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
|
||||
$ListeUIDFormations = array();
|
||||
$ListeUIDSemestres = array();
|
||||
$ListeUIDGroupes = array();
|
||||
|
||||
// Vérification de la formation si elle est définie
|
||||
$verificationUIDFormations = array();
|
||||
foreach($answer->grouplist as $groupe) // on récupère la liste des UID de FORMATIONS
|
||||
if( !in_array($groupe['id_formation'], $verificationUIDFormations) )
|
||||
array_push($verificationUIDFormations, $groupe['id_formation']);
|
||||
|
||||
// si la formation optionnelle n'est pas définie ou incohérente, on le fait (première valeur trouvée)
|
||||
if( $formationOpt == null || !in_array($formationOpt, $verificationUIDFormations) )
|
||||
$formationOpt = $verificationUIDFormations[0];
|
||||
|
||||
|
||||
echo "<table class='partlist' name='semestre'><tbody><tr>";
|
||||
|
||||
if( $semestreOpt != null ) // si aucun semestre n'est spécifié, on selectionne "Tous" par défaut
|
||||
echo "<td data-value='*'>Tous</td>";
|
||||
else
|
||||
echo "<td data-value='*' class='active'>Tous</td>";
|
||||
|
||||
|
||||
foreach($answerPourListeGroupes->grouplist as $group){
|
||||
if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
|
||||
/**************************/
|
||||
/* AFFINAGE PAR FORMATION */
|
||||
/**************************/
|
||||
echo "<table class='partlist' name='formation'><tbody><tr>";
|
||||
foreach($answer->grouplist as $groupe){ if( !in_array($groupe['id_formation'], $ListeUIDFormations) ){
|
||||
|
||||
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||
echo "<td data-value='".$group['semestre']."' class='active'>".$group['semestre'].'</td>';
|
||||
|
||||
if( $groupe['id_formation'] == $formationOpt ) // si c'est la formation séléctionnée
|
||||
echo "<td data-value='".$groupe['id_formation']."' class='active'>".$groupe['formation'].'</td>';
|
||||
else // sinon on affiche normalement
|
||||
echo "<td data-value='".$group['semestre']."'>".$group['semestre'].'</td>';
|
||||
echo "<td data-value='".$groupe['id_formation']."'>".$groupe['formation'].'</td>';
|
||||
|
||||
$lastSemestre = $group['semestre'];
|
||||
}
|
||||
}
|
||||
// on ajoute la formation à la liste pour ne pas la répéter
|
||||
array_push($ListeUIDFormations, $groupe['id_formation']);
|
||||
|
||||
}}
|
||||
echo "</tr></tbody></table>";
|
||||
|
||||
/* select pour GROUPES */
|
||||
$lastGroupe = null;
|
||||
|
||||
|
||||
|
||||
/*************************/
|
||||
/* AFFINAGE PAR SEMESTRE */
|
||||
/*************************/
|
||||
echo "<table class='partlist' name='semestre'><tbody><tr>";
|
||||
if( $semestreOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
|
||||
else echo "<td data-value='*'>Tous</td>";
|
||||
|
||||
/* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */
|
||||
foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $formationOpt && !in_array($groupe['id_semestre'], $ListeUIDSemestres) ){
|
||||
|
||||
if( $groupe['id_semestre'] == $semestreOpt ) // si c'est le groupe séléctionné
|
||||
echo "<td data-value='".$groupe['id_semestre']."' class='active'>".$groupe['semestre'].'</td>';
|
||||
else // sinon on affiche normalement
|
||||
echo "<td data-value='".$groupe['id_semestre']."'>".$groupe['semestre'].'</td>';
|
||||
|
||||
|
||||
// on ajoute le semestre à la liste pour ne pas le répéter
|
||||
array_push($ListeUIDSemestres, $groupe['id']);
|
||||
|
||||
}}
|
||||
echo "</tr></tbody></table>";
|
||||
|
||||
|
||||
|
||||
|
||||
/***********************/
|
||||
/* AFFINAGE PAR GROUPE */
|
||||
/***********************/
|
||||
echo "<select name='groupe'>";
|
||||
echo "<option value='*'>Tous les groupes</option>";
|
||||
foreach($answer->grouplist as $group){
|
||||
if( $lastGroupe == null || $lastGroupe != $group->nom ){
|
||||
if( $groupeOpt == null ) echo "<option value='*' selected>Tous les groupes</option>";
|
||||
else echo "<option value='*'>Tous les groupes</option>";
|
||||
|
||||
/* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */
|
||||
foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $formationOpt && in_array($groupe['id_semestre'], $ListeUIDSemestres) && !in_array($groupe['id'], $ListeUIDGroupes) ){
|
||||
|
||||
if( $groupe['id'] == $groupeOpt ) // si c'est le groupe séléctionné
|
||||
echo "<option value='".$groupe['id']."' selected>".$groupe['nom'].'</option>';
|
||||
else // sinon on affiche normalement
|
||||
echo "<option value='".$groupe['id']."'>".$groupe['nom'].'</option>';
|
||||
|
||||
|
||||
// on ajoute le semestre à la liste pour ne pas le répéter
|
||||
array_push($ListeUIDSemestres, $groupe['id']);
|
||||
|
||||
}}
|
||||
echo "</select>";
|
||||
|
||||
|
||||
|
||||
|
||||
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>';
|
||||
|
||||
$lastGroupe = $group['nom'];
|
||||
}
|
||||
}
|
||||
echo "<select>";
|
||||
|
||||
echo "<table class='basic col5'><thead><tr>";
|
||||
echo '<th>Identifiant</td>';
|
||||
|
@ -379,6 +317,8 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un
|
|||
|
||||
foreach($answer->grouplist as $group){ // pour chaque groupe
|
||||
|
||||
if( $group['id_formation'] == $formationOpt && ($semestreOpt==null || $semestreOpt==$group['id_semestre']) && ($groupeOpt==null || $groupeOpt==$group['id']) ){
|
||||
|
||||
if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
|
||||
|
||||
echo "<table class='basic margin col5'>";
|
||||
|
@ -404,6 +344,8 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
echo '</section>';
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
}else
|
||||
|
@ -431,69 +373,93 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
|
|||
$request = new stdClass();
|
||||
$answer = new stdClass();
|
||||
|
||||
/* ce jeu de données sert à récupérer la liste des groupes (même quand on applique un filtrage) */
|
||||
$requestPourListeGroupes = new stdClass();
|
||||
$answerPourListeGroupes = new stdClass();
|
||||
|
||||
|
||||
$request->level_1 = 'grouplistForYear';
|
||||
$request->annee = $_SESSION['annee'];
|
||||
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
|
||||
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
|
||||
|
||||
groups_switch_level_1($request, $answer); // on fait la requête pour les groupes en fonction des filtres si définis
|
||||
|
||||
|
||||
$requestPourListeGroupes->level_1 = 'grouplistForYear';
|
||||
$requestPourListeGroupes->annee = $_SESSION['annee'];
|
||||
groups_switch_level_1($requestPourListeGroupes, $answerPourListeGroupes); // on fait la requête pour avoir la liste des groupes quel que soit le filtrage
|
||||
|
||||
|
||||
if( $answer->request == 'success' && $answerPourListeGroupes->request == 'success' ){ // si pas d'erreur
|
||||
if( $answer->request == 'success' && $answer->request == 'success' ){ // si pas d'erreur
|
||||
//////////////////////////////////////////////////////////////
|
||||
echo "<section name='movestudents' data-title='Tous les groupes' class='basic'>";
|
||||
|
||||
/* select pour SEMESTRES */
|
||||
$lastSemestre = null;
|
||||
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
|
||||
$ListeUIDFormations = array();
|
||||
$ListeUIDSemestres = array();
|
||||
$ListeUIDGroupes = array();
|
||||
|
||||
echo "<table class='partlist' name='semestre'><tbody><tr>";
|
||||
// Vérification de la formation si elle est définie
|
||||
$verificationUIDFormations = array();
|
||||
foreach($answer->grouplist as $groupe) // on récupère la liste des UID de FORMATIONS
|
||||
if( !in_array($groupe['id_formation'], $verificationUIDFormations) )
|
||||
array_push($verificationUIDFormations, $groupe['id_formation']);
|
||||
|
||||
if( $semestreOpt != null && $semestreOpt != '*') // si aucun semestre n'est spécifié, on selectionne "Tous" par défaut
|
||||
echo "<td data-value='*'>Tous</td>";
|
||||
else
|
||||
echo "<td data-value='*' class='active'>Tous</td>";
|
||||
// si la formation optionnelle n'est pas définie ou incohérente, on le fait (première valeur trouvée)
|
||||
if( $formationOpt == null || !in_array($formationOpt, $verificationUIDFormations) )
|
||||
$formationOpt = $verificationUIDFormations[0];
|
||||
|
||||
|
||||
foreach($answerPourListeGroupes->grouplist as $group){
|
||||
if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
|
||||
|
||||
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||
echo "<td data-value='".$group['semestre']."' class='active'>".$group['semestre'].'</td>';
|
||||
else // sinon on affiche normalement
|
||||
echo "<td data-value='".$group['semestre']."'>".$group['semestre'].'</td>';
|
||||
|
||||
$lastSemestre = $group['semestre'];
|
||||
}
|
||||
}
|
||||
/**************************/
|
||||
/* AFFINAGE PAR FORMATION */
|
||||
/**************************/
|
||||
echo "<table class='partlist' name='formation'><tbody><tr>";
|
||||
foreach($answer->grouplist as $groupe){ if( !in_array($groupe['id_formation'], $ListeUIDFormations) ){
|
||||
|
||||
// si c'est la formation séléctionnée
|
||||
if( $groupe['id_formation'] == $formationOpt ) echo "<td data-value='".$groupe['id_formation']."' class='active'>".$groupe['formation'].'</td>';
|
||||
else echo "<td data-value='".$groupe['id_formation']."'>".$groupe['formation'].'</td>';
|
||||
|
||||
// on ajoute la formation à la liste pour ne pas la répéter
|
||||
array_push($ListeUIDFormations, $groupe['id_formation']);
|
||||
}}
|
||||
echo "</tr></tbody></table>";
|
||||
|
||||
/* select pour GROUPES */
|
||||
$lastGroupe = null;
|
||||
|
||||
|
||||
|
||||
/*************************/
|
||||
/* AFFINAGE PAR SEMESTRE */
|
||||
/*************************/
|
||||
echo "<table class='partlist' name='semestre'><tbody><tr>";
|
||||
if( $semestreOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
|
||||
else echo "<td data-value='*'>Tous</td>";
|
||||
|
||||
/* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */
|
||||
foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $formationOpt && !in_array($groupe['id_semestre'], $ListeUIDSemestres) ){
|
||||
|
||||
// si c'est le semestre séléctionné
|
||||
if( $groupe['id_semestre'] == $semestreOpt ) echo "<td data-value='".$groupe['id_semestre']."' class='active'>".$groupe['semestre'].'</td>';
|
||||
else echo "<td data-value='".$groupe['id_semestre']."'>".$groupe['semestre'].'</td>';
|
||||
|
||||
|
||||
// on ajoute le semestre à la liste pour ne pas le répéter
|
||||
array_push($ListeUIDSemestres, $groupe['id_semestre']);
|
||||
}}
|
||||
echo "</tr></tbody></table>";
|
||||
|
||||
|
||||
|
||||
|
||||
/***********************/
|
||||
/* AFFINAGE PAR GROUPE */
|
||||
/***********************/
|
||||
echo "<select name='groupe'>";
|
||||
echo "<option value='*'>Tous les groupes</option>";
|
||||
foreach($answer->grouplist as $group){
|
||||
if( $lastGroupe == null || $lastGroupe != $group['nom'] ){
|
||||
if( $groupeOpt == null ) echo "<option value='*' selected>Tous les groupes</option>";
|
||||
else echo "<option value='*'>Tous les groupes</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>';
|
||||
/* On récupère la liste des GROUPES en accord avec la FORMATION et le SEMESTRE sélectionnée */
|
||||
foreach($answer->grouplist as $groupe){ if( $groupe['id_formation'] == $formationOpt && in_array($groupe['id_semestre'], $ListeUIDSemestres) && !in_array($groupe['id'], $ListeUIDGroupes) ){
|
||||
|
||||
$lastGroupe = $group['nom'];
|
||||
}
|
||||
}
|
||||
echo "<select>";
|
||||
// si c'est le groupe sélectionné
|
||||
if( $groupe['id'] == $groupeOpt ) echo "<option value='".$groupe['id']."' selected>".$groupe['nom'].'</option>';
|
||||
else echo "<option value='".$groupe['id']."'>".$groupe['nom'].'</option>';
|
||||
|
||||
// on ajoute le semestre à la liste pour ne pas le répéter
|
||||
array_push($ListeUIDGroupes, $groupe['id']);
|
||||
}}
|
||||
echo "</select>";
|
||||
|
||||
|
||||
|
||||
|
@ -501,6 +467,8 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
|
|||
|
||||
foreach($answer->grouplist as $group){ // pour chaque groupe
|
||||
|
||||
if( $group['id_formation'] == $formationOpt && ($semestreOpt==null || $semestreOpt==$group['id_semestre']) && ($groupeOpt==null || $groupeOpt==$group['id']) ){
|
||||
|
||||
if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
|
||||
|
||||
echo "<table class='basic col4'>";
|
||||
|
@ -529,7 +497,7 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
|
|||
echo '<td>';
|
||||
echo "<select data-stre='".$group['id_semestre']."' class='deplacement_groupe'>";
|
||||
|
||||
foreach($answerPourListeGroupes->grouplist as $groupemodif) // pour tous les groupes
|
||||
foreach($answer->grouplist as $groupemodif) // pour tous les groupes
|
||||
if( $groupemodif['semestre'] == $group['semestre'] ) // si c'est un groupe du même semestre uniquement
|
||||
if( $groupemodif['nom'] == $group['nom'] ) // si c'est le groupe en cours, on le pré-sélectionne
|
||||
echo "<option value='".$groupemodif['nom']."' selected>".$groupemodif['nom']."</option>";
|
||||
|
@ -549,6 +517,8 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
|
|||
echo '</table>';
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
echo '</section>';
|
||||
////////////////////////////////////////////////////////
|
||||
|
|
|
@ -476,7 +476,7 @@ if( permission('admin') ){ // si l'utilisateur est un admin
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
echo "<section name='managemcc' data-title='MCC' class='basic'>";
|
||||
|
||||
|
||||
echo "<input type='text'>";
|
||||
|
||||
}else
|
||||
echo "<section name='managemcc' data-title='MCC' class='basic'><table class='basic'><tbody><tr><td>Aucun module trouvé</td></tr></tbody></table></section>";
|
||||
|
|
Loading…
Reference in New Issue