diff --git a/manager/database.php b/manager/database.php index 325b17e..19aaacd 100755 --- a/manager/database.php +++ b/manager/database.php @@ -255,7 +255,7 @@ class DataBase{ * @return semestreUID 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 return $semestre; else diff --git a/manager/repo/user.php b/manager/repo/user.php index 0b46d65..b2b898d 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -268,7 +268,7 @@ class userRepo extends DBAccess{ /* [2] Si l'enseignement existe, on retourne "TRUE" ==============================================================*/ if( $enseignementExiste->fetch() ) return true; - + /* [3] Si l'enseignement n'existe, on le créé diff --git a/page/settings.php b/page/settings.php index 4b44baf..b369f07 100755 --- a/page/settings.php +++ b/page/settings.php @@ -1,11 +1,52 @@ $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 ***/ /***************/ -if( connected() ){ // si l'utilisateur est connecté +if( false && connected() ){ // si l'utilisateur est connecté echo "
"; echo 'profil'; echo '
'; @@ -23,8 +64,13 @@ if( permission('admin') ){ require_once __ROOT__.'/manager/user.php'; require_once __ROOT__.'/manager/database.php'; - // on récupère la liste de tous les modules - $completeModuleList = DataBase::getInstance()->getExhaustiveModuleList(); + // on récupère tous les modules de l'année pour l'affinage + $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 $request = new stdClass(); $answer = new stdClass(); @@ -33,10 +79,115 @@ if( permission('admin') ){ // gestion de la requête 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 "
"; + + + + /* 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 ""; + 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 "'; + else // sinon on affiche normalement + echo "'; + + // on ajoute la formation à la liste pour ne pas la répéter + array_push($ListeUIDFormations, $semestre['id_formation']); + + }} + echo "
".$semestre['formation'].'".$semestre['formation'].'
"; + + + + + + + /*************************/ + /* AFFINAGE PAR SEMESTRE */ + /*************************/ + echo ""; + if( $semestreOpt == null ) echo ""; + else echo ""; + + /* 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 "'; + else // sinon on affiche normalement + echo "'; + + + // on ajoute le semestre à la liste pour ne pas le répéter + array_push($ListeUIDSemestres, $semestre['id']); + + }} + echo "
TousTous".$semestre['nom'].'".$semestre['nom'].'
"; + + + /*******************/ + /* AFFINAGE PAR UE */ + /*******************/ + echo ""; + if( $ueOpt == null ) echo ""; + else echo ""; + + /* 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 "'; + else // sinon on affiche normalement + echo "'; + + // on ajoute l'UE à la liste pour ne pas le répéter + array_push($ListeUIDUE, $UE['id']); + }} + }} + echo "
TousTous".$UE['nom'].'".$UE['nom'].'
"; + + + /**************************************************************/ + /* 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 ); echo ""; @@ -61,6 +212,8 @@ if( permission('admin') ){ echo ""; + + /* LISTE DES MODULES CORRIGEABLES */ $userModulesUID = array(); @@ -72,8 +225,6 @@ if( permission('admin') ){ foreach($user['semestreList'] as $semestre){ foreach($semestre['UElist'] as $ue){ foreach($ue['modules'] as $module){ - - array_push($userModulesUID, $module['id']); echo ""; echo ""; echo ""; @@ -82,6 +233,8 @@ if( permission('admin') ){ echo " correcteur"; echo ""; echo ""; + + array_push($userModulesUID, $module['id']); } } } @@ -89,11 +242,10 @@ if( permission('admin') ){ } /* AJOUT DE MODULES */ - // saisie d'un nouveau module echo ""; echo ""; echo "";
".$module['nom']." - ".$module['libelle']."".$ue['nom']." - ".$ue['libelle']."
Définir comme correcteur