Correction de l'affichage des modules possibles pour admin@rôles

This commit is contained in:
xdrm-brackets 2015-11-26 14:38:38 +01:00
parent 50344793e3
commit 15959dd5af
3 changed files with 163 additions and 11 deletions

View File

@ -255,7 +255,7 @@ class DataBase{
* @return semestreUID<int> l'UID du semestre courant * @return semestreUID<int> l'UID du semestre courant
* *
*/ */
public function studentSemestre($etudiant, $semestre_pair, $annee){ public static function studentSemestre($etudiant, $semestre_pair, $annee){
if( $semestre = semestreRepo::forStudent($etudiant, $semestre_pair, $annee) ) // si on a un résultat if( $semestre = semestreRepo::forStudent($etudiant, $semestre_pair, $annee) ) // si on a un résultat
return $semestre; return $semestre;
else else

View File

@ -268,7 +268,7 @@ class userRepo extends DBAccess{
/* [2] Si l'enseignement existe, on retourne "TRUE" /* [2] Si l'enseignement existe, on retourne "TRUE"
==============================================================*/ ==============================================================*/
if( $enseignementExiste->fetch() ) return true; if( $enseignementExiste->fetch() ) return true;
/* [3] Si l'enseignement n'existe, on le créé /* [3] Si l'enseignement n'existe, on le créé

View File

@ -1,11 +1,52 @@
<?php define('__ROOT__', dirname(dirname(__FILE__)) ); <?php define('__ROOT__', dirname(dirname(__FILE__)) );
require_once __ROOT__.'/manager/security.php'; require_once __ROOT__.'/manager/security.php';
require_once __ROOT__.'/manager/modules.php';
/*** GESTION DES PARAMETRES OPTIONNELS ***/
// on initialise les paramètres optionnels
$ueOpt = null;
$semestreOpt = null;
$formationOpt = null;
// on cherche dans toutes les variables _get si on trouve des paramètres
foreach($_POST as $k=>$v){
if( preg_match('/^u:(.+)$/', $k, $m) ) // u:nomUe
$ueOpt = $m[1];
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
$semestreOpt = $m[1];
if( preg_match('/^f:(.+)$/', $k, $m) ) // f:codeFormation
$formationOpt = $m[1];
}
$ueOpt = ($ueOpt == null || $ueOpt == '*') ? null : $ueOpt;
$semestreOpt = ($semestreOpt == null || $semestreOpt == '*') ? null : $semestreOpt;
$formationOpt = ($formationOpt == null || $formationOpt == '*') ? null : $formationOpt;
/***************/ /***************/
/*** PROFILE ***/ /*** PROFILE ***/
/***************/ /***************/
if( connected() ){ // si l'utilisateur est connecté if( false && connected() ){ // si l'utilisateur est connecté
echo "<section name='myprofile' data-title='Profil'>"; echo "<section name='myprofile' data-title='Profil'>";
echo 'profil'; echo 'profil';
echo '</section>'; echo '</section>';
@ -23,8 +64,13 @@ if( permission('admin') ){
require_once __ROOT__.'/manager/user.php'; require_once __ROOT__.'/manager/user.php';
require_once __ROOT__.'/manager/database.php'; require_once __ROOT__.'/manager/database.php';
// on récupère la liste de tous les modules // on récupère tous les modules de l'année pour l'affinage
$completeModuleList = DataBase::getInstance()->getExhaustiveModuleList(); $rAffinage = new stdClass(); $aAffinage = new stdClass();
$rAffinage->level_1 = 'getByYear';
$rAffinage->annee = $_SESSION['annee'];
modules_switch_level_1($rAffinage, $aAffinage);
// création de la requête // création de la requête
$request = new stdClass(); $answer = new stdClass(); $request = new stdClass(); $answer = new stdClass();
@ -33,10 +79,115 @@ if( permission('admin') ){
// gestion de la requête // gestion de la requête
user_switch_level_1($request, $answer); user_switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si aucune erreur if( $answer->request == 'success' && $aAffinage->request == 'success' ){ // si aucune erreur
$allSemestres = $aAffinage->semestres; // liste du programme de l'année courante
echo "<section name='attributionrole' data-title='Rôles' class='basic' >"; echo "<section name='attributionrole' data-title='Rôles' class='basic' >";
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
$ListeUIDFormations = array();
$ListeUIDSemestres = array();
$ListeUIDUE = array();
// Vérification de la formation si elle est définie
$verificationUIDFormations = array();
foreach($allSemestres as $semestre) // on récupère la liste des UID de FORMATIONS
if( !in_array($semestre['id_formation'], $verificationUIDFormations) )
array_push($verificationUIDFormations, $semestre['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];
/**************************/
/* AFFINAGE PAR FORMATION */
/**************************/
echo "<table class='partlist' name='formation'><tbody><tr>";
foreach($allSemestres as $semestre){ if( !in_array($semestre['id_formation'], $ListeUIDFormations) ){
if( $semestre['id_formation'] == $formationOpt ) // si c'est la formation séléctionnée
echo "<td data-value='".$semestre['id_formation']."' class='active'>".$semestre['formation'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$semestre['id_formation']."'>".$semestre['formation'].'</td>';
// on ajoute la formation à la liste pour ne pas la répéter
array_push($ListeUIDFormations, $semestre['id_formation']);
}}
echo "</tr></tbody></table>";
/*************************/
/* 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($allSemestres as $semestre){ if( $semestre['id_formation'] == $formationOpt && !in_array($semestre['id'], $ListeUIDSemestres) ){
if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné
echo "<td data-value='".$semestre['id']."' class='active'>".$semestre['nom'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$semestre['id']."'>".$semestre['nom'].'</td>';
// on ajoute le semestre à la liste pour ne pas le répéter
array_push($ListeUIDSemestres, $semestre['id']);
}}
echo "</tr></tbody></table>";
/*******************/
/* AFFINAGE PAR UE */
/*******************/
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>";
/* On récupère la liste des UEs en accord avec la FORMATION et le SEMESTRE sélectionnés */
foreach($allSemestres as $semestre){ if( $semestre['id_formation'] == $formationOpt && in_array($semestre['id'], $ListeUIDSemestres) ){
foreach($semestre['UElist'] as $UE){ if( !in_array($UE['id'], $ListeUIDUE) ){
if( $UE['id'] == $ueOpt ) // si c'est l'UE séléctionnée
echo "<td data-value='".$UE['id']."' class='active'>".$UE['nom'].'</td>';
else // sinon on affiche normalement
echo "<td data-value='".$UE['id']."'>".$UE['nom'].'</td>';
// on ajoute l'UE à la liste pour ne pas le répéter
array_push($ListeUIDUE, $UE['id']);
}}
}}
echo "</tr></tbody></table>";
/**************************************************************/
/* ON DEFINIT LA LISTE DES MODULES EN FONCTION DE L'AFFINNAGE */
/**************************************************************/
$completeModuleList = array(); // contiendra la liste des modules
// on affiche les semestres en fonction de l'affinage
foreach($allSemestres as $semestre){ if( ($semestreOpt == null || $semestre['id'] == $semestreOpt) && ($formationOpt == null || $semestre['id_formation'] == $formationOpt) ){ // on affiche les semestres en fonction de l'affinage
// on afficha les UE en fonction de l'affinage
foreach($semestre['UElist'] as $UE){ if( $ueOpt == null || $UE['id'] == $ueOpt ){
// on définit la liste des modules en fonction de ça
foreach($UE['modules'] as $mod)
array_push( $completeModuleList, $mod );
}}
}}
// var_dump( $answer->userlist ); // var_dump( $answer->userlist );
echo "<table class='basic col5'><tbody>"; echo "<table class='basic col5'><tbody>";
@ -61,6 +212,8 @@ if( permission('admin') ){
echo "</tr>"; echo "</tr>";
/* LISTE DES MODULES CORRIGEABLES */ /* LISTE DES MODULES CORRIGEABLES */
$userModulesUID = array(); $userModulesUID = array();
@ -72,8 +225,6 @@ if( permission('admin') ){
foreach($user['semestreList'] as $semestre){ foreach($user['semestreList'] as $semestre){
foreach($semestre['UElist'] as $ue){ foreach($semestre['UElist'] as $ue){
foreach($ue['modules'] as $module){ foreach($ue['modules'] as $module){
array_push($userModulesUID, $module['id']);
echo "<tr>"; echo "<tr>";
echo "<td>".$module['nom']." - ".$module['libelle']."</td>"; echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
echo "<td>".$ue['nom']." - ".$ue['libelle']."</td>"; echo "<td>".$ue['nom']." - ".$ue['libelle']."</td>";
@ -82,6 +233,8 @@ if( permission('admin') ){
echo "<input data-usr='".$user['id']."' data-mccmod='".$module['id_mcc_module']."' class='del_module' type='checkbox' id='".$user['id']."correcteur".$module['id']."' checked><label for='".$user['id']."correcteur".$module['id']."'></label> correcteur"; echo "<input data-usr='".$user['id']."' data-mccmod='".$module['id_mcc_module']."' class='del_module' type='checkbox' id='".$user['id']."correcteur".$module['id']."' checked><label for='".$user['id']."correcteur".$module['id']."'></label> correcteur";
echo "</td>"; echo "</td>";
echo "</tr>"; echo "</tr>";
array_push($userModulesUID, $module['id']);
} }
} }
} }
@ -89,11 +242,10 @@ if( permission('admin') ){
} }
/* AJOUT DE MODULES */ /* AJOUT DE MODULES */
// saisie d'un nouveau module
echo "<tr class='grayscale'>"; echo "<tr class='grayscale'>";
echo "<td><select name='modules'>"; echo "<td><select name='modules'>";
foreach($completeModuleList as $module){ if( !in_array($module['id'], $userModulesUID) ){ foreach($completeModuleList as $MOD){ if( !in_array($MOD['id'], $userModulesUID) ){
echo "<option value='".$module['id_mcc_module']."'>".$module['nom']." - ".$module['libelle']."</option>"; echo "<option value='".$MOD['id_mcc_module']."'>".$MOD['nom']." - ".$MOD['libelle']."</option>";
}} }}
echo "</select></td>"; echo "</select></td>";
echo "<td><div data-usr='".$user['id']."' class='confirm active set_correcteur'>Définir comme correcteur</div></td>"; echo "<td><div data-usr='".$user['id']."' class='confirm active set_correcteur'>Définir comme correcteur</div></td>";