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; } span.stressed{ font-weight: bold; }
thead.normal > tr > th{ font-weight: normal; }
/*************************/ /*************************/
/*** TITLE PERSONALISÉ ***/ /*** TITLE PERSONALISÉ ***/
@ -186,18 +186,18 @@ span.link:hover{ color: #000; }
/*********************/ /*********************/
select{ select{
/* position */ /* position */
margin: 2em 0; margin: 2em;
padding: 0 1em; padding: 0 1em;
/* border */ /* border */
border-radius: 5px; border-radius: 5px;
border: 1px solid #ddd; border: 1px solid #2dcc70;
/* background */ /* background */
background-color: #fff; background-color: #fff;
/* foreground */ /* foreground */
color: #233342; color: #2dcc70;
/* select */ /* select */
-webkit-appearance:none; -webkit-appearance:none;
@ -216,7 +216,7 @@ select > option{
background-color: #fff; background-color: #fff;
/* foreground */ /* foreground */
color: #233342; color: #555;
text-indent: 1em; text-indent: 1em;
} }
@ -269,3 +269,61 @@ tr:hover td select.active + .valider_action{ background-image: url(../src/valida
/* bouton validation */ /* bouton validation */
input.saisie_note.active + .valider_action{ display: inline-block; background-image: url(../src/validate.svg); } 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); } 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){ ajax: function(pLink, pHandler, pMethod, pForm){
// on efface les requêtes qui sont terminées et on push une nouvelle // on efface les requêtes qui sont terminées et on push une nouvelle
for( var i = 0 ; i < this.xhr.length ; i++ ){ 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 = this.xhr.slice(0,i-1).concat(this.xhr.slice(i,this.xhr.length-1)); // suppression entrée
} }
this.xhr.push(true); var index;
i = this.xhr.length-1;
if(window.XMLHttpRequest) // IE7+, Firefox, Chrome, Opera, Safari if(window.XMLHttpRequest) // IE7+, Firefox, Chrome, Opera, Safari
this.xhr[i] = new XMLHttpRequest(); index = this.xhr.push( new XMLHttpRequest() ) -1;
else // IE5, IE6 else // IE5, IE6
this.xhr[i] = new ActiveXObject('Microsoft.XMLHttpRequest'); index = this.xhr.push( new ActiveXObject('Microsoft.XMLHttpRequest') ) -1;
var ptrPageManager = this; var ptrPageManager = this;
this.xhr[i].onreadystatechange = function(){ this.xhr[index].onreadystatechange = function(){
if( ptrPageManager.xhr[i].readyState == 4 ) // si la requête est terminée if( ptrPageManager.xhr[index].readyState == 4 ) // si la requête est terminée
if( [0,200].indexOf(ptrPageManager.xhr[i].status) > -1 ) // si fichier existe et reçu if( [0,200].indexOf(ptrPageManager.xhr[index].status) > -1 ) // si fichier existe et reçu
pHandler(ptrPageManager.xhr[i].responseText); pHandler(ptrPageManager.xhr[index].responseText);
else // si code d'erreur retourne null else // si code d'erreur retourne null
pHandler(); pHandler();
} }
@ -49,8 +48,8 @@ pageManager.prototype = {
// gestion du formulaire si la méthode est POST // gestion du formulaire si la méthode est POST
var form = ( method == 'POST' && typeof pForm == 'object' && pForm instanceof FormData ) ? pForm : null; var form = ( method == 'POST' && typeof pForm == 'object' && pForm instanceof FormData ) ? pForm : null;
this.xhr[i].open( method, pLink, true); this.xhr[index].open( method, pLink, true );
this.xhr[i].send( form ); this.xhr[index].send( form );
}, },
/***************************************************** [APPLICATION] Ajax() ******************************************************/ /***************************************************** [APPLICATION] Ajax() ******************************************************/
// EXEMPLES DE FONCTIONS POUR pHandler // // EXEMPLES DE FONCTIONS POUR pHandler //

View File

@ -122,6 +122,27 @@ require_once __ROOT__.'/manager/database.php';
break; 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 */ /* 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 */ /* 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 */ /* 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 */ /* LIENS POUR LES GROUPES ET CONTRÔLES */
if( e.target.className == 'link grp ctrl' && e.target.dataset.hasOwnProperty('grp') && e.target.dataset.hasOwnProperty('ctrl') ){ 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[1] = 'c:'+e.target.dataset.ctrl;
pageM.vars[2] = e.target.dataset.grp; pageM.vars[2] = 'g:'+e.target.dataset.grp;
reload(); reload();
} }
/* LIENS POUR LES GROUPES */ /* LIENS POUR LES GROUPES */
if( e.target.className == 'link grp' && e.target.dataset.hasOwnProperty('grp') ){ 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(); reload();
} }
/* LIENS POUR LES CONTRÔLES */ /* LIENS POUR LES CONTRÔLES */
if( e.target.className == 'link ctrl' && e.target.dataset.hasOwnProperty('ctrl') ){ 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 ) if( pageM.vars[2] != null )
pageM.vars.pop(); pageM.vars.pop();
@ -34,12 +66,27 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') ){ /
reload(); 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); }, false);
} }
} }
/* GESTION DE LA SAISIE DE NOTES */ /* GESTION DE LA SAISIE DE NOTES */
if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != null ){ // si c'set l'admin 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 ***/ /*** 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++ ){
// GESTION DE LA PRISE EN COMPTE DES SELECT // partList[i].addEventListener('click', function(e){
DOM.CONTAINER.addEventListener('change', function(e){ var tableauParent = e.target.parentNode.parentNode.parentNode;
if( e.target.tagName == 'SELECT' && ['semestre', 'groupe'].indexOf(e.target.getAttribute('name')) > -1 ){
if( e.target.getAttribute('name') == 'semestre' ){ // SI modifie le semestre if( tableauParent.tagName == 'TABLE' && tableauParent.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('value') ){
pageM.vars[1] = e.target.value; // on selectionne semestre pageM.vars[1] = 's:'+e.target.dataset.value;
pageM.vars[2] = '*'; // on désactive le groupe
}else{ // SINON // si on a '*' comme valeur, on l'enlève
pageM.vars[1] = '*'; // on désactive le semestre if( /\*$/.test(pageM.vars[1]) )
pageM.vars[2] = e.target.value; // on active le groupe pageM.vars.pop();
}
reload(); reload();
// console.log(e.target.getAttribute('name')+' = '+e.target.value);
} }
}, false); }, false);
}
// 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();
}
}, false);
}

View File

@ -9,23 +9,33 @@ require_once __ROOT__.'/manager/career.php';
/*** GESTION DES PARAMETRES OPTIONNELS ***/ /*** GESTION DES PARAMETRES OPTIONNELS ***/
$postVars = array(); // on récupère les variables post // on initialise les paramètres optionnels
foreach($_POST as $k=>$v)
array_push($postVars, $k);
/* GESTION CONTRÔLE OPTIONNEL */
if( isset($postVars[1]) && is_int($postVars[1]) )
$controleOpt = (String) $postVars[1];
else
$controleOpt = null; $controleOpt = null;
/* GESTION GROUPE OPTIONNEL */
if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 )
$groupeOpt = $postVars[2];
else
$groupeOpt = null; $groupeOpt = null;
$etudiantOpt = null;
$ueOpt = null;
// 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];
if( preg_match('/^c:(.+)$/', $k, $m) ) // s:nomSemestre
$controleOpt = $m[1];
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,21 +156,32 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
echo "<section name='controlesenseignants' data-title='Contrôles' class='basic'>"; 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 if( count($answer->UEs) > 0 ){ // si au moins un UE
foreach($answer->UEs as $UE){ // pour chaque 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( $ueOpt == null || $UE['nom'] == $ueOpt ){ // si on affiche l'UE en fonction du paramètre passé par l'URL
if( count($UE['modules']) > 0 ){ // s'il y a au moins un module if( count($UE['modules']) > 0 ){ // s'il y a au moins un module
foreach($UE['modules'] as $module){ // pour chaque module foreach($UE['modules'] as $module){ // pour chaque module
echo "<table class='basic col4'><thead>"; echo "<table class='basic col4'><thead class=normal>";
echo '<tr><th colspan=4>'.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>'; echo '<tr><th colspan=4><strong>'.$UE['nom'].'</strong> - '.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>';
if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module
@ -205,6 +226,8 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
} }
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,25 +18,22 @@ require_once __ROOT__.'/manager/groups.php';
/*** GESTION DES PARAMETRES OPTIONNELS ***/ /*** GESTION DES PARAMETRES OPTIONNELS ***/
$postVars = array(); // on récupère les variables post // on initialise les paramètres optionnels
foreach($_POST as $k=>$v)
array_push($postVars, $k);
/* GESTION SEMESTRE OPTIONNEL */
if( isset($postVars[1]) && preg_match('/^S[0-9]{1}$/', $postVars[1]) )
$semestreOpt = $postVars[1];
else
$semestreOpt = null; $semestreOpt = null;
/* GESTION GROUPES OPTIONNEL */
if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 )
$groupeOpt = $postVars[2];
else
$groupeOpt = null; $groupeOpt = null;
// 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];
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
$semestreOpt = $m[1];
}
/************************/ /************************/
/*** TOUS LES GROUPES ***/ /*** TOUS LES GROUPES ***/
@ -309,35 +306,50 @@ 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 if( permission('teacher') ){ // 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 = 'grouplistForTeacher'; /******************************************************************************************************** A FAIRE **/ $requestPourListeGroupes = new stdClass();$answerPourListeGroupes = new stdClass();
$request->level_1 = 'grouplistForTeacher';
$request->enseignant = $_SESSION['identifiant']; $request->enseignant = $_SESSION['identifiant'];
$request->annee = $_SESSION['annee']; $request->annee = $_SESSION['annee'];
if ( $semestreOpt != null ) $request->semestre = $semestreOpt; if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt; elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
groups_switch_level_1($request, $answer); $requestPourListeGroupes->level_1 = 'grouplistForTeacher';
$requestPourListeGroupes->enseignant = $_SESSION['identifiant'];
$requestPourListeGroupes->annee = $_SESSION['annee'];
if( $answer->request == 'success' && count($answer->grouplist) > 0 ){ // si on a bien récupéré les membres du groupe 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'>"; echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'>";
/* select pour SEMESTRES */ /* select pour SEMESTRES */
$lastSemestre = null; $lastSemestre = null;
echo "<select name='semestre'>";
echo "<option value='*'>Tous les semestres</option>"; echo "<table class='partlist' name='semestre'><tbody><tr>";
foreach($answer->grouplist as $group){
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'] ){ if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné 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 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']; $lastSemestre = $group['semestre'];
} }
} }
echo "<select>"; echo "</tr></tbody></table>";
/* select pour GROUPES */ /* select pour GROUPES */
$lastGroupe = null; $lastGroupe = null;
@ -444,20 +456,26 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
/* select pour SEMESTRES */ /* select pour SEMESTRES */
$lastSemestre = null; $lastSemestre = null;
echo "<select name='semestre'>"; echo "<table class='partlist' name='semestre'><tbody><tr>";
echo "<option value='*'>Tous les semestres</option>";
foreach($answer->grouplist as $group){ 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( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné 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 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']; $lastSemestre = $group['semestre'];
} }
} }
echo "<select>"; echo "</tr></tbody></table>";
/* select pour GROUPES */ /* select pour GROUPES */
$lastGroupe = null; $lastGroupe = null;