Modification du select par partlist et filtrage PHP sur page/*.php plus efficace qu'au niveau de database et des managers

This commit is contained in:
xdrm-brackets 2015-11-15 18:12:49 +01:00
parent 59d1e454ce
commit fb37b5aeeb
7 changed files with 470 additions and 185 deletions

View File

@ -15,7 +15,7 @@ tr:hover > td > span.unstressed{ color: #ddd; }
span.stressed{ font-weight: bold; }
thead.normal > tr > th{ font-weight: normal; }
/*************************/
/*** TITLE PERSONALISÉ ***/
@ -186,18 +186,18 @@ span.link:hover{ color: #000; }
/*********************/
select{
/* position */
margin: 2em 0;
margin: 2em;
padding: 0 1em;
/* border */
border-radius: 5px;
border: 1px solid #ddd;
border: 1px solid #2dcc70;
/* background */
background-color: #fff;
/* foreground */
color: #233342;
color: #2dcc70;
/* select */
-webkit-appearance:none;
@ -216,7 +216,7 @@ select > option{
background-color: #fff;
/* foreground */
color: #233342;
color: #555;
text-indent: 1em;
}
@ -269,3 +269,61 @@ tr:hover td select.active + .valider_action{ background-image: url(../src/valida
/* bouton validation */
input.saisie_note.active + .valider_action{ display: inline-block; background-image: url(../src/validate.svg); }
tr:hover td input.saisie_note.active + .valider_action{ background-image: url(../src/validate@hover.svg); }
/******************************/
/*** SELECTIONS DES PARTIES ***/
/******************************/
#CONTAINER > section > .partlist{
/* position */
display: table;
margin: 2em;
/* border */
border-spacing: 0;
}
#CONTAINER > section > .partlist td{
/* position */
padding: .7em 2em;
/* border */
border: 1px solid #2dcc70;
border-right: 0;
/* background */
background-color: #fff;
/* foreground */
color: #2dcc70;
/* extra */
cursor: pointer;
/* animation */
transition: .2s ease-in-out;
-moz-transition: .2s ease-in-out;
-webkit-transition: .2s ease-in-out;
-ms-transition: .2s ease-in-out;
-o-transition: .2s ease-in-out;
}
/* @radius */
#CONTAINER > section > .partlist td:first-child{
border-radius: 5px 0 0 5px;
}
/* @border + @radius */
#CONTAINER > section > .partlist td:last-child{
border-radius: 0 5px 5px 0;
border-right: 1px solid #2dcc70;
}
#CONTAINER > section > .partlist td.active{
background-color: #2dcc70;
color: #fff;
}

View File

@ -22,23 +22,22 @@ pageManager.prototype = {
ajax: function(pLink, pHandler, pMethod, pForm){
// on efface les requêtes qui sont terminées et on push une nouvelle
for( var i = 0 ; i < this.xhr.length ; i++ ){
if( this.xhr[i].readyState == 4 ) // si terminée
// if( this.xhr[i].readyState == 4 ) // si terminée
this.xhr = this.xhr.slice(0,i-1).concat(this.xhr.slice(i,this.xhr.length-1)); // suppression entrée
}
this.xhr.push(true);
i = this.xhr.length-1;
var index;
if(window.XMLHttpRequest) // IE7+, Firefox, Chrome, Opera, Safari
this.xhr[i] = new XMLHttpRequest();
index = this.xhr.push( new XMLHttpRequest() ) -1;
else // IE5, IE6
this.xhr[i] = new ActiveXObject('Microsoft.XMLHttpRequest');
index = this.xhr.push( new ActiveXObject('Microsoft.XMLHttpRequest') ) -1;
var ptrPageManager = this;
this.xhr[i].onreadystatechange = function(){
if( ptrPageManager.xhr[i].readyState == 4 ) // si la requête est terminée
if( [0,200].indexOf(ptrPageManager.xhr[i].status) > -1 ) // si fichier existe et reçu
pHandler(ptrPageManager.xhr[i].responseText);
this.xhr[index].onreadystatechange = function(){
if( ptrPageManager.xhr[index].readyState == 4 ) // si la requête est terminée
if( [0,200].indexOf(ptrPageManager.xhr[index].status) > -1 ) // si fichier existe et reçu
pHandler(ptrPageManager.xhr[index].responseText);
else // si code d'erreur retourne null
pHandler();
}
@ -49,8 +48,8 @@ pageManager.prototype = {
// gestion du formulaire si la méthode est POST
var form = ( method == 'POST' && typeof pForm == 'object' && pForm instanceof FormData ) ? pForm : null;
this.xhr[i].open( method, pLink, true);
this.xhr[i].send( form );
this.xhr[index].open( method, pLink, true );
this.xhr[index].send( form );
},
/***************************************************** [APPLICATION] Ajax() ******************************************************/
// EXEMPLES DE FONCTIONS POUR pHandler //

View File

@ -122,6 +122,27 @@ require_once __ROOT__.'/manager/database.php';
break;
/**********************************************/
/* informations relatives au dossier étudiant */
/**********************************************/
case 'studentcase': if( permission('teacher') ){
$areSetParam = isset($request->etudiant) && isset($request->controle) && isset($request->note); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->controle) && is_numeric($request->note); // des bon types
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // nom bon format
if( $etudiantCheck ){ // si tout les paramètres sont bons
$answer->request = DataBase::getInstance()->saisieNote($request->etudiant, $request->controle, $request->note);
}else
$answer->request = 'param_error';
}else
$answer->request = 'permission_error';
break;
/****************************************************/
/* saisie d'une note pour un étudiant à un contrôle */
@ -145,6 +166,36 @@ require_once __ROOT__.'/manager/database.php';
/* _ ____ ___ _____ _____ _ _ ____ _____ ____
/* / \ | _ \_ _| ___| ___| | | / ___|| ____| _ \
/* / _ \ | | | | || |_ | |_ | | | \___ \| _| | |_) |
/* / ___ \ | |_| | || _| | _| | |_| |___) | |___| _ <
/* /_/ \_\ |____/___|_| |_| \___/|____/|_____|_| \_\
/*
/****************************************************/
/* saisie d'une note pour un groupe à un contrôle */
/****************************************************/
case 'saisieNoteGroupe': if( permission('teacher') ){
$areSetParam = isset($request->etudiant) && isset($request->controle) && isset($request->note); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->controle) && is_numeric($request->note); // des bon types
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // nom bon format
if( $etudiantCheck ){ // si tout les paramètres sont bons
$answer->request = DataBase::getInstance()->saisieNoteGroupe($request->etudiant, $request->controle, $request->note);
}else
$answer->request = 'param_error';
}else
$answer->request = 'permission_error';
break;
/***********/
/* DEFAULT */
/***********/

View File

@ -1,5 +1,37 @@
<!--
/**************************************/
/* GESTION DE L'AFFINAGE PAR SEMESTRE */
/**************************************/
var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=UE]");
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') == 'UE' && e.target.dataset.hasOwnProperty('value') ){
pageM.vars[1] = 'u:'+e.target.dataset.value;
// si on a '*' comme valeur, on l'enlève
if( /\*$/.test(pageM.vars[1]) )
pageM.vars.pop();
reload();
}
}, false);
}
/***********************************************/
/* GESTION DE LE FILTRAGE POUR LES ENSEIGNANTS */
/***********************************************/
@ -12,21 +44,21 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') ){ /
/* LIENS POUR LES GROUPES ET CONTRÔLES */
if( e.target.className == 'link grp ctrl' && e.target.dataset.hasOwnProperty('grp') && e.target.dataset.hasOwnProperty('ctrl') ){
pageM.vars[1] = e.target.dataset.ctrl;
pageM.vars[2] = e.target.dataset.grp;
pageM.vars[1] = 'c:'+e.target.dataset.ctrl;
pageM.vars[2] = 'g:'+e.target.dataset.grp;
reload();
}
/* LIENS POUR LES GROUPES */
if( e.target.className == 'link grp' && e.target.dataset.hasOwnProperty('grp') ){
pageM.vars[2] = e.target.dataset.grp;
pageM.vars[2] = 'g:'+e.target.dataset.grp;
reload();
}
/* LIENS POUR LES CONTRÔLES */
if( e.target.className == 'link ctrl' && e.target.dataset.hasOwnProperty('ctrl') ){
pageM.vars[1] = e.target.dataset.ctrl;
pageM.vars[1] = 'c:'+e.target.dataset.ctrl;
if( pageM.vars[2] != null )
pageM.vars.pop();
@ -34,12 +66,27 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') ){ /
reload();
}
/* LIENS POUR LES DOSSIER ETUDIANT */
if( e.target.className == 'link etu' && e.target.dataset.hasOwnProperty('etu') ){
pageM.vars[1] = 'e:'+e.target.dataset.etu;
if( pageM.vars[2] != null )
pageM.vars.pop();
pageM.vars[0] = 'studentcase'; // on redirige vers la page dossier étudiant
reload();
}
}, false);
}
}
/* GESTION DE LA SAISIE DE NOTES */
if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != null ){ // si c'set l'admin

View File

@ -99,24 +99,46 @@ if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ /
/***************************************************/
/*** GESTION DES SELECT POUR AFFINER LES GROUPES ***/
/***************************************************/
var selectList = document.querySelectorAll("#CONTAINER > section[name] > select");
var selectList = document.querySelectorAll("#CONTAINER > section[name] > select[name=groupe]");
var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=semestre]");
// GESTION DE L'AFFINAGE PAR SEMESTRE //
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;
// si on a '*' comme valeur, on l'enlève
if( /\*$/.test(pageM.vars[1]) )
pageM.vars.pop();
reload();
}
}, false);
}
// GESTION DE LA PRISE EN COMPTE DES SELECT //
DOM.CONTAINER.addEventListener('change', function(e){
if( e.target.tagName == 'SELECT' && ['semestre', 'groupe'].indexOf(e.target.getAttribute('name')) > -1 ){
if( e.target.getAttribute('name') == 'semestre' ){ // SI modifie le semestre
pageM.vars[1] = e.target.value; // on selectionne semestre
pageM.vars[2] = '*'; // on désactive le groupe
}else{ // SINON
pageM.vars[1] = '*'; // on désactive le semestre
pageM.vars[2] = e.target.value; // on active le groupe
// GESTION DE L'AFFINAGE PAR GROUPE //
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;
if( /\*$/.test(pageM.vars[1]) ) // si on a '*' comme valeur, on l'enlève
pageM.vars.pop();
reload();
}
reload();
// console.log(e.target.getAttribute('name')+' = '+e.target.value);
}
}, false);
}, false);
}

View File

@ -9,23 +9,33 @@ require_once __ROOT__.'/manager/career.php';
/*** GESTION DES PARAMETRES OPTIONNELS ***/
$postVars = array(); // on récupère les variables post
// on initialise les paramètres optionnels
$controleOpt = null;
$groupeOpt = null;
$etudiantOpt = null;
$ueOpt = null;
foreach($_POST as $k=>$v)
array_push($postVars, $k);
// on cherche dans toutes les variables _get si on trouve des paramètres
foreach($_POST as $k=>$v){
/* GESTION CONTRÔLE OPTIONNEL */
if( isset($postVars[1]) && is_int($postVars[1]) )
$controleOpt = (String) $postVars[1];
else
$controleOpt = null;
if( preg_match('/^g:(.+)$/', $k, $m) ) // g:nomGroupe
$groupeOpt = $m[1];
if( preg_match('/^c:(.+)$/', $k, $m) ) // s:nomSemestre
$controleOpt = $m[1];
/* GESTION GROUPE OPTIONNEL */
if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 )
$groupeOpt = $postVars[2];
else
$groupeOpt = null;
if( preg_match('/^e:(.+)$/', $k, $m) ) // s:nomSemestre
$etudiantOpt = $m[1];
if( preg_match('/^u:(.+)$/', $k, $m) ) // s:nomSemestre
$ueOpt = $m[1];
}
$controleOpt = ($controleOpt == null || $controleOpt == '*') ? null : $controleOpt;
$groupeOpt = ($groupeOpt == null || $groupeOpt == '*') ? null : $groupeOpt;
$etudiantOpt = ($etudiantOpt == null || $etudiantOpt == '*') ? null : $etudiantOpt;
$ueOpt = ($ueOpt == null || $ueOpt == '*') ? null : $ueOpt;
/****************************************
* *
@ -146,65 +156,78 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
////////////////////////////////////////////////////////////////////////////////
echo "<section name='controlesenseignants' data-title='Contrôles' class='basic'>";
echo "<table class='partlist' name='UE'><tbody><tr>";
if( $ueOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
else echo "<td data-value='*'>Tous</td>";
foreach($answer->UEs as $UE)
if( $UE['nom'] == $ueOpt ) // si c'est le semestre séléctionné
echo "<td data-value='".$UE['nom']."' class='active'>".$UE['nom'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$UE['nom']."'>".$UE['nom'].'</td>';
echo "</tr></tbody></table>";
if( count($answer->UEs) > 0 ){ // si au moins un UE
foreach($answer->UEs as $UE){ // pour chaque UE
echo "<table class='basic col4'>";
echo "<thead>";
echo '<tr>';
echo "<th colspan=5 style='font-size:1.5em; text-align:center;'>".$UE['nom'].' - '.$UE['libelle'].'</th>';
echo '</tr>';
echo '</thead></table>';
if( count($UE['modules']) > 0 ){ // s'il y a au moins un module
foreach($UE['modules'] as $module){ // pour chaque module
echo "<table class='basic col4'><thead>";
echo '<tr><th colspan=4>'.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>';
if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // si on affiche l'UE en fonction du paramètre passé par l'URL
if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module
if( count($UE['modules']) > 0 ){ // s'il y a au moins un module
foreach($module['controles'] as $controle){ // pour chaque contrôle
echo '<tr>';
echo "<td><span class='link ctrl' data-ctrl='".$controle['id']."'>".$controle['intitule']."</span></td>";
echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
foreach($UE['modules'] as $module){ // pour chaque module
echo "<table class='basic col4'><thead class=normal>";
echo '<tr><th colspan=4><strong>'.$UE['nom'].'</strong> - '.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>';
if( count($controle['notes']) == 0 ) // si il y a au moins une note pour ce contrôle
echo '<td><span class=unstressed>Pas noté</span></td>';
else
echo '<td><span class=unstressed>Moyenne de</span> '.number_format($controle['moyenne'], 2).' <span class=unstressed>/</span> '.$controle['base'].'</td>';
// echo '<td>'.number_format($controle['moyenne'], 2).'</td>';
if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module
foreach($module['controles'] as $controle){ // pour chaque contrôle
echo '<tr>';
echo "<td><span class='link ctrl' data-ctrl='".$controle['id']."'>".$controle['intitule']."</span></td>";
echo '<td><span class=unstressed>Coefficient</span> '.number_format($controle['coefficient'], 2).'</td>';
echo '</tr>';
echo "<tr class='noborder transparentbg'><td></td><td colspan=3><table class='basic col4'><tbody>";
echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
foreach($controle['notes'] as $note){ // on affiche la liste des élèves avec leurs notes
echo "<tr>";
echo "<td><span class='link grp ctrl' data-grp='".$note['groupe']."' data-ctrl='".$controle['id']."'>".$note['groupe']."</span></td>";
if( $note['nb_notes'] == 1 )
echo "<td>".$note['nb_notes']." <span class=unstressed>note</span></td>";
if( count($controle['notes']) == 0 ) // si il y a au moins une note pour ce contrôle
echo '<td><span class=unstressed>Pas noté</span></td>';
else
echo "<td>".$note['nb_notes']." <span class=unstressed>notes</span></td>";
echo '<td><span class=unstressed>Moyenne de</span> '.number_format($controle['moyenne'], 2).' <span class=unstressed>/</span> '.$controle['base'].'</td>';
// echo '<td>'.number_format($controle['moyenne'], 2).'</td>';
echo '<td><span class=unstressed>Coefficient</span> '.number_format($controle['coefficient'], 2).'</td>';
echo '</tr>';
echo "<tr class='noborder transparentbg'><td></td><td colspan=3><table class='basic col4'><tbody>";
echo "<td><span class=unstressed>Allant de</span> ".$note['min']." <span class=unstressed>à</span> ".$note['max']."</td>";
echo "<td><span class=unstressed>Moyenne de </span>".number_format($note['moyenne'], 2)." <span class=unstressed>/</span> ".$controle['base']."</td>";
echo "</tr>";
foreach($controle['notes'] as $note){ // on affiche la liste des élèves avec leurs notes
echo "<tr>";
echo "<td><span class='link grp ctrl' data-grp='".$note['groupe']."' data-ctrl='".$controle['id']."'>".$note['groupe']."</span></td>";
if( $note['nb_notes'] == 1 )
echo "<td>".$note['nb_notes']." <span class=unstressed>note</span></td>";
else
echo "<td>".$note['nb_notes']." <span class=unstressed>notes</span></td>";
echo "<td><span class=unstressed>Allant de</span> ".$note['min']." <span class=unstressed>à</span> ".$note['max']."</td>";
echo "<td><span class=unstressed>Moyenne de </span>".number_format($note['moyenne'], 2)." <span class=unstressed>/</span> ".$controle['base']."</td>";
echo "</tr>";
}
echo '</tbody></table></td></tr>';
}
echo '</tbody></table></td></tr>';
}
}else // si aucun contrôle pour ce module
echo "<tr><td colspan=5>Aucun contrôle trouvé</td></tr>";
}else // si aucun contrôle pour ce module
echo "<tr><td colspan=5>Aucun contrôle trouvé</td></tr>";
echo '</tbody>';
}
echo '</tbody>';
}
echo '</table>';
}
echo '</table>';
}
}
@ -338,6 +361,73 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif
/***************************************************/
/*** LES DOSSIERS ETUDIANTS (version enseignant) ***/
/***************************************************/
/*
*
* [1] Toutes les notes d'un enseignant
*
*/
if( permission('teacher') && $etudiantOpt != null ){
$request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'getNotesEtudiant';
$request->etudiant = $etudiantOpt;
$request->semestre = $_SESSION['semestre'];
$request->annee = $_SESSION['annee'];
career_switch_level_1($request, $answer);
var_dump( $answer );
if( $answer->request == 'success' ){ // si on a bien récupéré les UE/notes
////////////////////////////////////////////////////////////////////////////////
echo "<section name='studentcase' data-title='Dossier étudiant' class='basic'>";
foreach($answer->UEs as $UE){ // pour chaque UE
echo "<table class='basic col4'>";
echo "<thead><tr><th colspan=5 style='font-size:1.5em; text-align:center;'>".$UE['nom'].' - '.$UE['libelle'].'</th></tr>';
echo '</thead></table>';
foreach($UE['modules'] as $module){ // pour chaque module
echo '<table class=basic><thead>';
echo '<tr><th colspan=5>'.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>';
foreach($module['controles'] as $controle){ // pour chaque contrôle
echo '<tr>';
echo '<td><span class=link>'.$controle['intitule'].'</span></td>';
if( count($controle['notes']) == 0 ) // si aucune note pour ce controle on affiche 'Pas de note'
echo '<td><span class=unstressed>Pas de note</span></td>';
else // si une note, alors on l'affiche
echo '<td>'.number_format($controle['notes'][0]['valeur'], 2).' <span class=unstressed>/</span> '.$controle['base'].'</td>';
echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
echo '<td>Coefficient '.number_format($controle['coefficient'], 2).'</td>';
echo '</tr>';
}
echo '</tbody>';
}
echo '</table>';
}
////////////////////////////////////////////////////////////////////////////////
echo '</section>';
}else
echo "<section name='studentcase' data-title='Dossier étudiant' class='basic'><table class=basic><tbody><tr><td>Aucune note trouvée</td></tr></tbody></table></section>";
}

View File

@ -18,24 +18,21 @@ require_once __ROOT__.'/manager/groups.php';
/*** GESTION DES PARAMETRES OPTIONNELS ***/
$postVars = array(); // on récupère les variables post
// on initialise les paramètres optionnels
$semestreOpt = null;
$groupeOpt = null;
foreach($_POST as $k=>$v)
array_push($postVars, $k);
// on cherche dans toutes les variables _get si on trouve des paramètres
foreach($_POST as $k=>$v){
if( preg_match('/^g:(.+)$/', $k, $m) ) // g:nomGroupe
$groupeOpt = $m[1];
/* GESTION SEMESTRE OPTIONNEL */
if( isset($postVars[1]) && preg_match('/^S[0-9]{1}$/', $postVars[1]) )
$semestreOpt = $postVars[1];
else
$semestreOpt = null;
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
$semestreOpt = $m[1];
}
/* GESTION GROUPES OPTIONNEL */
if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 )
$groupeOpt = $postVars[2];
else
$groupeOpt = null;
/************************/
@ -308,94 +305,109 @@ 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();
$request->level_1 = 'grouplistForTeacher'; /******************************************************************************************************** A FAIRE **/
$request->enseignant = $_SESSION['identifiant'];
$request->annee = $_SESSION['annee'];
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
$request = new stdClass(); $answer = new stdClass();
$requestPourListeGroupes = new stdClass();$answerPourListeGroupes = new stdClass();
groups_switch_level_1($request, $answer);
if( $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'>";
$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
////////////////////////////////////////////////////////////////////////////////
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'>";
/* select pour SEMESTRES */
$lastSemestre = null;
echo "<table class='partlist' name='semestre'><tbody><tr>";
/* select pour SEMESTRES */
$lastSemestre = null;
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>";
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>';
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'];
$lastSemestre = $group['semestre'];
}
}
echo "</tr></tbody></table>";
/* 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 "<select>";
/* select pour GROUPES */
$lastGroupe = null;
// echo '<tr><td colspan=5 class=more></td></tr>';
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></table>';
}
echo '</tbody></table>';
}
echo '</section>';
////////////////////////////////////////////////////////////////////////////////
}else
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
}
echo '</section>';
////////////////////////////////////////////////////////////////////////////////
}else
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
} ?>
@ -444,20 +456,26 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
/* select pour SEMESTRES */
$lastSemestre = null;
echo "<select name='semestre'>";
echo "<option value='*'>Tous les semestres</option>";
foreach($answer->grouplist as $group){
echo "<table class='partlist' name='semestre'><tbody><tr>";
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>";
foreach($answerPourListeGroupes->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>';
echo "<td data-value='".$group['semestre']."' class='active'>".$group['semestre'].'</td>';
else // sinon on affiche normalement
echo "<option value='".$group['semestre']."'>".$group['semestre'].'</option>';
echo "<td data-value='".$group['semestre']."'>".$group['semestre'].'</td>';
$lastSemestre = $group['semestre'];
}
}
echo "<select>";
echo "</tr></tbody></table>";
/* select pour GROUPES */
$lastGroupe = null;