Affichage par semestre enseignant@mes_modules + admin@tous_les_modules + enseignant@contrôles

This commit is contained in:
xdrm-brackets 2015-11-16 13:28:24 +01:00
parent c7063cb958
commit 01334b44e6
8 changed files with 266 additions and 133 deletions

View File

@ -74,13 +74,13 @@ require_once __ROOT__.'/manager/database.php';
$anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons
$UEs = DataBase::getInstance()->getControlesEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee);
$semestreList = DataBase::getInstance()->getControlesEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee);
if( is_array($UEs) ){ // si on a bien un tableau
$answer->UEs = $UEs; // on renvoie dans answer->UEs
if( is_array($semestreList) ){ // si on a bien un tableau
$answer->semestres = $semestreList; // on renvoie dans answer->semestreList
$answer->request = 'success'; // et on renvoie success
}else // sinon si c'est pas un tableau
$answer->request = $UEs; // on retourne l'erreur
$answer->request = $semestreList; // on retourne l'erreur
}else
$answer->request = 'param_error';

View File

@ -385,52 +385,21 @@ class DataBase{
// on vérifie que l'enseignant enseigne bien cette année
if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher';
$UEList = $this->getUEsEnseignant($enseignant, $semestre_pair, $annee); // on récupère la liste des UEs
// on récupère les semestres de cette année
$semestreList = semestreRepo::forTeacher($enseignantUID, $semestre_pair, $annee);
foreach($UEList as $iter=>$UE){
foreach($semestreList as $iter_s=>$a){
$semestreList[$iter_s]['UElist'] = ueRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['id']);
// si on a l'UID enseignant & l'UE => on récupère les modules
$getModuleList = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom as nom, m.libelle as libelle ".
"FROM enseignement as ens, semestre as s, ue, module as m, mcc_ue, mcc_module as mcc_m ".
"WHERE ens.id_mcc_module = mcc_m.id_mcc_module ".
"AND mcc_m.id_module = m.id_module ".
"AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ".
"AND mcc_ue.id_ue = ue.id_ue ".
foreach($semestreList[$iter_s]['UElist'] as $iter_u=>$b)
$semestreList[$iter_s]['UElist'][$iter_u]['modules'] = moduleRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['UElist'][$iter_u]['id'], $semestreList[$iter_s]['id']);
"AND ens.id_enseignant = :enseignantUID ".
"AND ue.id_ue = :UEUID ".
"AND s.annee = :annee ".
"AND s.rang % 2 = :semestre_pair ".
"ORDER BY m.nom, m.libelle ASC");
$getModuleList->execute(array(
':enseignantUID' => $enseignantUID,
':UEUID' => $UE['id'],
':annee' => $annee,
':semestre_pair' => ($semestre_pair) ? '0' : '1'
));
// on ajoute la liste des modules en supprimant les valeurs à indinces numériques
$UEList[$iter]['modules'] = DataBase::delNumeric( $getModuleList->fetchAll() );
}
return $UEList;
return $semestreList;
}
/****************************************/
/*** retourne les UEs d'un enseignant ***/
/****************************************/
public function getUEsEnseignant($enseignant, $semestre_pair, $annee){
// on vérifie que l'enseignant enseigne bien cette année
if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher';
// on retourne la liste des UEs en supprimant les doublons à indices numériques
return ueRepo::forTeacher($enseignantUID, $semestre_pair, $annee);
}
@ -542,20 +511,24 @@ class DataBase{
public function getControlesEnseignant($enseignant, $semestre_pair, $annee){
// on vérifie que le semestre existe et que l'enseignant y enseigne
if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher';
debug();
// on récupère les semestres de cette année
$semestreList = semestreRepo::forTeacher($enseignantUID, $semestre_pair, $annee);
foreach($semestreList as $iter_s=>$a){
$UEList = ueRepo::forTeacher($enseignantUID, $semestre_pair, $annee);
$semestreList[$iter_s]['UElist'] = ueRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['id']);
foreach($UEList as $iter_ue=>$a){
$UEList[$iter_ue]['modules'] = moduleRepo::forTeacher($enseignantUID, $UEList[$iter_ue]['id'], $UEList[$iter_ue]['id_semestre']);
foreach($semestreList[$iter_s]['UElist'] as $iter_u=>$b){
$semestreList[$iter_s]['UElist'][$iter_u]['modules'] = moduleRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['UElist'][$iter_u]['id'], $semestreList[$iter_s]['id']);
foreach($UEList[$iter_ue]['modules'] as $iter_mod=>$b){
$UEList[$iter_ue]['modules'][$iter_mod]['controles'] = controleRepo::forTeacher($enseignantUID, $UEList[$iter_ue]['modules'][$iter_mod]['id'], $UEList[$iter_ue]['id_semestre']);
foreach($semestreList[$iter_s]['UElist'][$iter_u]['modules'] as $iter_m=>$c){
$semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'] = controleRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['id'], $semestreList[$iter_s]['id']);
foreach($UEList[$iter_ue]['modules'][$iter_mod]['controles'] as $iter_ct=>$c){
$UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['grouplist'] = noteRepo::forTeacher($UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['id']);
foreach($semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'] as $iter_ct=>$c){
$semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'][$iter_ct]['grouplist'] = noteRepo::forTeacher($semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'][$iter_ct]['id']);
$UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['moyenne'] = noteRepo::moyenneForControle($UEList[$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['id']);
$semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'][$iter_ct]['moyenne'] = noteRepo::moyenneForControle($semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['controles'][$iter_ct]['id']);
}
@ -563,7 +536,9 @@ class DataBase{
}
return $UEList;
}
return $semestreList;
}

View File

@ -82,16 +82,16 @@ require_once __ROOT__.'/manager/database.php';
$anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons
$UEList = DataBase::getInstance()->getModulesByUEByEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee);
$semestreList = DataBase::getInstance()->getModulesByUEByEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee);
// STRUCTURE
// tableau d'UES contenant un tableau de MODULES
if( is_array($UEList) ){ // si on a bien un tableau
$answer->UEs = $UEList; // on renvoie dans answer->ues
if( is_array($semestreList) ){ // si on a bien un tableau
$answer->semestres = $semestreList; // on renvoie dans answer->ues
$answer->request = 'success'; // et on renvoie success
}else // sinon si c'est pas un tableau
$answer->request = $UEList; // on retourne l'erreur
$answer->request = $semestreList; // on retourne l'erreur
}else
$answer->request = 'param_error';
@ -121,7 +121,7 @@ require_once __ROOT__.'/manager/database.php';
$answer->semestres = $semestreList; // on renvoie dans answer->ues
$answer->request = 'success'; // et on renvoie success
}else // sinon si c'est pas un tableau
$answer->request = $UEList; // on retourne l'erreur
$answer->request = $semestreList; // on retourne l'erreur
}else
$answer->request = 'param_error';

View File

@ -110,6 +110,35 @@ class semestreRepo extends DBAccess{
/* retourne la liste des semestres qu'à un enseignant
*
* @enseignant<String> l'UID de l'enseignant en question
* @semestre_pair<Boolean> VRAI si le semestre en cours est pair
* @annee<int> l'année en question
*
*
* @return semestres<Array> retourne la liste des semestres répondant aux critères
* @return FALSE<Boolean> retourne FALSE si aucun semestre ne correspond aux critères
*
*/
public static function forTeacher($enseignant, $semestre_pair, $annee){
$getSemestreList = DataBase::getPDO()->prepare("SELECT DISTINCT s.id_semestre as id, f.code as formation, f.nom as nom_formation, s.nom, s.rang, s.annee ".
"FROM semestre as s, formation as f, enseignement as ens, mcc_module as mcc_m, mcc_ue ".
"WHERE s.id_semestre = mcc_ue.id_semestre ". // semestre <-> mcc_ue
"AND s.formation = f.id_formation ". // semestre <-> formation
"AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ". // mcc_ue <-> mcc_module
"AND mcc_m.id_mcc_module = ens.id_mcc_module ". // mcc_module <-> enseignement
"AND ens.id_enseignant = :enseignant ".
"AND s.rang % 2 = :semestre_pair ".
"AND s.annee = :annee ".
"ORDER BY s.rang ASC");
$getSemestreList->execute(array( ':enseignant' => $enseignant, ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee ));
return DataBase::delNumeric( $getSemestreList->fetchAll() );
}
/* retourne la liste des semestres d'une année
*
* @annee<int> l'année en question
@ -120,7 +149,7 @@ class semestreRepo extends DBAccess{
*
*/
public static function forYear($annee){
$getSemestreList = DataBase::getPDO()->prepare("SELECT s.id_semestre as id, f.code as formation, f.nom as nom_formation, s.nom, s.rang, s.annee ".
$getSemestreList = DataBase::getPDO()->prepare("SELECT DISTINCT s.id_semestre as id, f.code as formation, f.nom as nom_formation, s.nom, s.rang, s.annee ".
"FROM semestre as s, formation as f ".
"WHERE s.formation = f.id_formation ".
"AND annee = :annee ".

View File

@ -73,16 +73,15 @@ class ueRepo extends DBAccess{
/* RENVOIE LA LISTE DES UEs QU'ENSEIGNE UN ENSEIGNANT POUR UNE ANNEE
/* RENVOIE LA LISTE DES UEs QU'ENSEIGNE UN ENSEIGNANT POUR UN SEMESTRE
*
* @enseignant<String> Identifiant de l'enseignant
* @semestre_pair<Boolean> VRAI si le semestre est pair
* @annee<int> l'année en cours
* @semestre<int> l'UID du semestre en question
*
* @return UEs<Array> retourne un tableau contenant les UEs de l'enseignant pour cette année
* @return UEs<Array> retourne un tableau contenant les UEs de l'enseignant pour ce semestre
*
*/
public static function forTeacher($enseignant, $semestre_pair, $annee){
public static function forTeacher($enseignant, $semestre){
// on récupère les modules
$getUesForTeacher = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.id_semestre, s.nom as semestre, s.annee, ue.nom, ue.libelle ".
"FROM enseignement as ens, semestre as s, ue, mcc_ue, mcc_module as mcc_m ".
@ -93,11 +92,10 @@ class ueRepo extends DBAccess{
"AND mcc_ue.id_ue = ue.id_ue ".
"AND ens.id_enseignant = :enseignant ".
"AND s.rang % 2 = :semestre_pair ".
"AND s.annee = :annee ".
"AND s.id_semestre = :semestre ".
"ORDER BY ue.nom, ue.libelle ASC");
$getUesForTeacher->execute(array( ':enseignant' => $enseignant, ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee ));
$getUesForTeacher->execute(array( ':enseignant' => $enseignant, ':semestre' => $semestre ));
return DataBase::delNumeric( $getUesForTeacher->fetchAll() );
}

View File

@ -5,14 +5,21 @@
/********************************/
/* GESTION DE L'AFFINAGE PAR UE */
/********************************/
var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=UE]");
var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=UE], #CONTAINER > section[name] > table.partlist[name=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') == 'UE' && e.target.dataset.hasOwnProperty('value') ){
if( tableauParent.tagName == 'TABLE' && e.target.dataset.hasOwnProperty('value') ){
/* SI c'est une affinage par SEMESTRE */
if( tableauParent.getAttribute('name') == 'semestre' )
pageM.vars[1] = 's:'+e.target.dataset.value;
/* SI c'est un affinage par UE */
if( tableauParent.getAttribute('name') == 'UE' )
pageM.vars[1] = 'u:'+e.target.dataset.value;
// si on a '*' comme valeur, on l'enlève

View File

@ -5,8 +5,6 @@ require_once __ROOT__.'/manager/modules.php';
require_once __ROOT__.'/manager/career.php';
/*** GESTION DES PARAMETRES OPTIONNELS ***/
// on initialise les paramètres optionnels
@ -14,6 +12,7 @@ require_once __ROOT__.'/manager/career.php';
$groupeOpt = null;
$etudiantOpt = null;
$ueOpt = null;
$semestreOpt = null;
// on cherche dans toutes les variables _get si on trouve des paramètres
foreach($_POST as $k=>$v){
@ -21,21 +20,25 @@ require_once __ROOT__.'/manager/career.php';
if( preg_match('/^g:(.+)$/', $k, $m) ) // g:nomGroupe
$groupeOpt = $m[1];
if( preg_match('/^c:(.+)$/', $k, $m) ) // s:nomSemestre
if( preg_match('/^c:(.+)$/', $k, $m) ) // c:idControle
$controleOpt = $m[1];
if( preg_match('/^e:(.+)$/', $k, $m) ) // s:nomSemestre
if( preg_match('/^e:(.+)$/', $k, $m) ) // e:idEtudiant
$etudiantOpt = $m[1];
if( preg_match('/^u:(.+)$/', $k, $m) ) // s:nomSemestre
if( preg_match('/^u:(.+)$/', $k, $m) ) // u:nomUe
$ueOpt = $m[1];
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
$semestreOpt = $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;
$semestreOpt = ($semestreOpt == null || $semestreOpt == '*') ? null : $semestreOpt;
/****************************************
* *
@ -63,7 +66,6 @@ require_once __ROOT__.'/manager/career.php';
if( permission('student') ){ // si l'utilisateur est connecté et que c'est un élève
$request = new stdClass(); $answer = new stdClass();
debug();
$request->level_1 = 'getNotesEtudiant';
$request->etudiant = $_SESSION['identifiant'];
@ -157,7 +159,6 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
$request->level_1 = 'getControlesEnseignant';
$request->enseignant = $_SESSION['identifiant'];
$request->semestre = $_SESSION['semestre'];
$request->annee = $_SESSION['annee'];
career_switch_level_1($request, $answer);
@ -167,28 +168,63 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
echo "<section name='controlesenseignants' data-title='Contrôles' class='basic'>";
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
$ListeNomsSemestres = array();
$ListeNomsUE = array();
foreach($answer->semestres as $semestre){
array_push( $ListeNomsSemestres, $semestre['nom'] );
/* ON RECUPERE UNE LISTE UNIQUE DES UEs */
foreach($semestre['UElist'] as $UE)
array_push( $ListeNomsUE, $UE['nom'] );
}
$ListeNomsSemestres = array_unique($ListeNomsSemestres);
$ListeNomsUE = array_unique($ListeNomsUE);
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>";
foreach($ListeNomsSemestres as $NomSemestre)
if( $NomSemestre == $semestreOpt ) // si c'est le semestre séléctionné
echo "<td data-value='".$NomSemestre."' class='active'>".$NomSemestre.'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$NomSemestre."'>".$NomSemestre.'</td>';
echo "</tr></tbody></table>";
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>';
foreach($ListeNomsUE as $NomUE)
if( $NomUE == $ueOpt ) // si c'est le semestre séléctionné
echo "<td data-value='".$NomUE."' class='active'>".$NomUE.'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$UE['nom']."'>".$UE['nom'].'</td>';
echo "<td data-value='".$NomUE."'>".$NomUE.'</td>';
echo "</tr></tbody></table>";
if( count($answer->UEs) > 0 ){ // si au moins un UE
foreach($answer->UEs as $UE){ // pour chaque UE
if( count($answer->semestres) > 0 ){ // si au moins un UE
foreach($answer->semestres as $semestre){
if( $semestreOpt == null || $semestre['nom'] == $semestreOpt ){ // on affiche les semestres en fonction de l'affinage
foreach($semestre['UElist'] as $UE){ // pour chaque UE
if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // 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
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>';
echo "<table class='basic col5'><thead>";
echo '<tr><th colspan=4><strong>'.$semestre['nom_formation'].' - '.$semestre['nom'].'</th></tr></thead><tbody>';
if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module
@ -198,6 +234,7 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
echo "<td><span class='link ctrl' data-ctrl='".$controle['id']."'>".$controle['intitule']."</span></td>";
echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
echo "<td>".$UE['nom']." - ".$UE['libelle']."</td>";
if( $controle['moyenne'] == null ) // si il y a au moins une note pour ce contrôle
echo '<td><span class=unstressed>Pas noté</span></td>';
@ -225,6 +262,10 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
}
}
}
}
////////////////////////////////////////////////////////////////////////////////
echo '</section>';
}else

View File

@ -102,6 +102,28 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un
<!-- mes modules -->
<?php
@ -122,27 +144,60 @@ if( permission('teacher') ){ // si l'utilisateur est un prof
////////////////////////////////////////////////////////////////////////////////
echo "<section name='teachersmodules' data-title='Mes modules' class='basic'>";
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
$ListeNomsSemestres = array();
$ListeNomsUE = array();
foreach($answer->semestres as $semestre){
array_push( $ListeNomsSemestres, $semestre['nom'] );
/* ON RECUPERE UNE LISTE UNIQUE DES UEs */
foreach($semestre['UElist'] as $UE)
array_push( $ListeNomsUE, $UE['nom'] );
}
$ListeNomsSemestres = array_unique($ListeNomsSemestres);
$ListeNomsUE = array_unique($ListeNomsUE);
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>";
foreach($ListeNomsSemestres as $NomSemestre)
if( $NomSemestre == $semestreOpt ) // si c'est le semestre séléctionné
echo "<td data-value='".$NomSemestre."' class='active'>".$NomSemestre.'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$NomSemestre."'>".$NomSemestre.'</td>';
echo "</tr></tbody></table>";
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>';
foreach($ListeNomsUE as $NomUE)
if( $NomUE == $ueOpt ) // si c'est le semestre séléctionné
echo "<td data-value='".$NomUE."' class='active'>".$NomUE.'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$UE['nom']."'>".$UE['nom'].'</td>';
echo "<td data-value='".$NomUE."'>".$NomUE.'</td>';
echo "</tr></tbody></table>";
foreach($answer->UEs as $UE){
if( $ueOpt == null || $UE['nom'] == $ueOpt ){
foreach($answer->semestres as $semestre){
if( $semestreOpt == null || $semestre['nom'] == $semestreOpt ){ // on affiche les semestres en fonction de l'affinage
foreach($semestre['UElist'] as $UE){
if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // on affiche les UEs en fonction de l'affinage
echo "<table class='basic'>";
echo "<thead class='normal'>";
echo "<thead>";
echo '<tr>';
echo '<th colspan=5><strong>'.$UE['semestre'].'</strong> - '.$UE['nom'].' - '.$UE['libelle'].'</th>';
echo '<th colspan=5>'.$semestre['nom_formation'].' - '.$semestre['nom'].'</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
@ -150,6 +205,7 @@ if( permission('teacher') ){ // si l'utilisateur est un prof
echo '<tr>';
echo '<td>'.$MODULE['nom'].'</td>';
echo '<td>'.$MODULE['libelle'].'</td>';
echo '<td>'.$UE['nom'].' - '.$UE['libelle'].'</td>';
echo '</tr>';
}
@ -158,6 +214,10 @@ if( permission('teacher') ){ // si l'utilisateur est un prof
}
}
}
}
////////////////////////////////////////////////////////////////////////////////
echo '</section>';
}else
@ -168,6 +228,29 @@ if( permission('teacher') ){ // si l'utilisateur est un prof
<!-- tous les modules -->
<?php