From 83fd11cf15d1acdeb8926d7fc58f6bf003235516 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Mon, 30 Nov 2015 21:46:40 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9ploiement=20de=20l'int=C3=A9gration/modi?= =?UTF-8?q?fication=20des=20enseignements=20+=20d=C3=A9ploiement=20=C3=A0?= =?UTF-8?q?=20l'interface=20de=20modification=20des=20r=C3=B4les,=20reste?= =?UTF-8?q?=20affiche=20=C3=A0=20d=C3=A9ployer=20et=20modifier.=20[x]=20Mo?= =?UTF-8?q?difier=20mod=C3=A8le:=20prof=20corrige=20un=20GROUPE=20pour=20u?= =?UTF-8?q?n=20module=20=09+=20modifier=20BDD=20=09+=20afficher=20les=20gr?= =?UTF-8?q?oupes=20pour=20le=20changement=20de=20r=C3=B4les=20=09+=20int?= =?UTF-8?q?=C3=A9grer=20la=20modification=20au=20changement=20de=20r=C3=B4?= =?UTF-8?q?les?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API.js | 2 +- css/global.css | 29 ++++++++++++++ manager/career.php | 4 +- manager/database.php | 88 +++++++++++++++++++++++++++++++++++------- manager/groups.php | 2 +- manager/modules.php | 2 +- manager/repo/group.php | 24 +++++++++++- manager/repo/user.php | 63 +++++++++++++++++++++--------- manager/user.php | 10 +++-- page/_JS/settings.js | 69 ++++++++++++++++++++++++++------- page/settings.php | 18 +++++---- test.php | 2 +- 12 files changed, 251 insertions(+), 62 deletions(-) diff --git a/API.js b/API.js index 4111cce..a272c54 100755 --- a/API.js +++ b/API.js @@ -51,7 +51,7 @@ APIClass.prototype = { if( ptrAPI.xhr[i].readyState == 4 ){ // si la requête est terminée /* DEBUG : affiche la réponse BRUTE de API.php */ - // console.log('API.php => '+ptrAPI.xhr[i].responseText); + console.log('API.php => '+ptrAPI.xhr[i].responseText); console.log( JSON.parse(ptrAPI.xhr[i].responseText) ); /* si success de requête */ diff --git a/css/global.css b/css/global.css index 60c1a13..2ec63a3 100755 --- a/css/global.css +++ b/css/global.css @@ -34,6 +34,9 @@ div.p.center input{ } +.nomargin{ margin: 0 !important; } +.nopadding{ padding: 0 !important; } + input{ font-family: inherit; } /* même police pour les input */ /*************************/ @@ -265,6 +268,31 @@ div.p.center select{ + + + + + + + +.del{ + color: #f55b55; + cursor: pointer; + + /* animation */ + transition: all .2s ease-in-out; + -moz-transition: all .2s ease-in-out; + -webkit-transition: all .2s ease-in-out; + -ms-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; +} + +/* hover */ +.del:hover{ font-weight: bold; } + + + + .confirm{ /* position */ /*display: inline-block;*/ display: none; @@ -295,6 +323,7 @@ div.p.center select{ } + .confirm [type=file]{ /* position */ display: block; diff --git a/manager/career.php b/manager/career.php index 7278bc6..705162f 100755 --- a/manager/career.php +++ b/manager/career.php @@ -217,7 +217,7 @@ require_once __ROOT__.'/manager/database.php'; /****************************************************/ /* saisie d'une note pour un étudiant à un contrôle */ /****************************************************/ - case 'saisieNote': if( permission('teacher') || permission('admin') && $_SESSION['annee'] < getCurrentYear() ){ + case 'saisieNote': if( (permission('teacher') || permission('admin')) && $_SESSION['annee'] >= getCurrentYear() ){ $areSetParam = isset($request->etudiant) && isset($request->controle) && isset($request->note); // les arguments existent $typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings @@ -237,7 +237,7 @@ require_once __ROOT__.'/manager/database.php'; /****************************************************/ /* saisie d'une note pour un groupe à un contrôle */ /****************************************************/ - case 'saisieNoteMultiple': if( permission('teacher') || permission('admin') && $_SESSION['annee'] == getCurrentYear() ){ + case 'saisieNoteMultiple': if( (permission('teacher') || permission('admin')) && $_SESSION['annee'] >= getCurrentYear() ){ $areSetParam = isset($request->notes) && isset($request->controle); // les arguments existent $typeOkParam = $areSetParam && is_array($request->notes) && is_numeric($request->controle); // si c'est des strings diff --git a/manager/database.php b/manager/database.php index 2044cd5..ba30935 100755 --- a/manager/database.php +++ b/manager/database.php @@ -277,7 +277,7 @@ class DataBase{ foreach($roleUsers as $iter=>$user){ $semestreList = $this->getModulesByUEByEnseignant($user['id'], null, $annee); if( is_array($semestreList) ) $roleUsers[$iter]['semestreList'] = $semestreList; - else $roleUsers[$iter]['semestreList'] = null; + else $roleUsers[$iter]['semestreList'] = null; } return $roleUsers; @@ -344,16 +344,40 @@ class DataBase{ * * @utilisateur l'UID de l'utilisateur en question * @mccmodule l'UID du mcc_module à ajouter + * + * @groupe ***OPTIONNEL*** l'UID du groupe à ajouter * * * @return added VRAI si module ajouté, sinon FALSE * */ - public function correcteurAjouterModule($utilisateur, $mccmodule){ - // on vérifie l'existence de l'utilisateur + public function correcteurAjouterModule($utilisateur, $mccmodule, $groupe=null){ + // on vérifie l'existence de l'utilisateur et du groupe if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user'; + + if( $groupe != null ) // si un groupe est donné, on le cherche + if( !($groupeUID=groupRepo::info($groupe)['id']) ) return 'unknown_group'; - return userRepo::addModule($utilisateurUID, $mccmodule); + + + + // si on ajoute pour un groupe donné, on le fait + if( $groupe != null ) + $success = userRepo::addModule($utilisateurUID, $mccmodule, $groupeUID); + + + + // si aucun groupe n'est donné + else{ + + $inscrits = groupRepo::inscritsMccModule($mccmodule); + $success = true; + foreach($inscrits as $groupe) + $success = $success && userRepo::addModule($utilisateurUID, $mccmodule, $groupe['id']); + + } + + return $success; } @@ -363,15 +387,39 @@ class DataBase{ * @utilisateur l'UID de l'utilisateur en question * @mccmodule l'UID du mcc_module à supprimer * + * @groupe ***OPTIONNEL*** l'UID du groupe à supprimer + * * * @return removed VRAI si module supprimé, sinon FALSE * */ - public function correcteurSupprimerModule($utilisateur, $mccmodule){ + public function correcteurSupprimerModule($utilisateur, $mccmodule, $groupe=null){ // on vérifie l'existence de l'utilisateur if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user'; + + if( $groupe != null ) // si un groupe est donné, on le cherche + if( !($groupeUID=groupRepo::info($groupe)['id']) ) return 'unknown_group'; - return userRepo::delModule($utilisateurUID, $mccmodule); + + + + // si on ajoute pour un groupe donné, on le fait + if( $groupe != null ) + $success = userRepo::delModule($utilisateurUID, $mccmodule, $groupeUID); + + + + // si aucun groupe n'est donné + else{ + + $inscrits = groupRepo::inscritsMccModule($mccmodule); + $success = true; + foreach($inscrits as $groupe) + $success = $success && userRepo::delModule($utilisateurUID, $mccmodule, $groupe['id']); + + } + + return $success; } @@ -626,8 +674,23 @@ class DataBase{ foreach($semestreList as $iter_s=>$a){ $semestreList[$iter_s]['UElist'] = ueRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['id']); - foreach($semestreList[$iter_s]['UElist'] as $iter_u=>$b) + 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($semestreList[$iter_s]['UElist'][$iter_u]['modules'] as $iter_m=>$MOD){ + // on enregistre la liste des groupes inscrits + $semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['groupes'] = groupRepo::inscritsMccModule($MOD['id_mcc_module']); + + foreach($semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['groupes'] as $iter_g=>$GROUPE){ + // on enregistre "true" si l'enseignant les enseigne, sinon "false" + $semestreList[$iter_s]['UElist'][$iter_u]['modules'][$iter_m]['groupes'][$iter_g]['enseigne'] = userRepo::enseigne($enseignantUID, $MOD['id_mcc_module'], $GROUPE['id']); + } + + } + + + } } @@ -646,16 +709,15 @@ class DataBase{ // on récupère les semestres de cette année $semestreList = semestreRepo::forYear($annee); - foreach($semestreList as $iter_s=>$a){ - $semestreList[$iter_s]['UElist'] = ueRepo::forYear($semestreList[$iter_s]['id']); + foreach($semestreList as $iter_s=>$SEMESTRE){ + $semestreList[$iter_s]['UElist'] = ueRepo::forYear($SEMESTRE['id']); - foreach($semestreList[$iter_s]['UElist'] as $iter_u=>$b){ - $semestreList[$iter_s]['UElist'][$iter_u]['modules'] = moduleRepo::forYear($semestreList[$iter_s]['UElist'][$iter_u]['id'], $semestreList[$iter_s]['id']); - - } + foreach($semestreList[$iter_s]['UElist'] as $iter_u=>$UE) + $semestreList[$iter_s]['UElist'][$iter_u]['modules'] = moduleRepo::forYear($UE['id'], $SEMESTRE['id']); } + return $semestreList; } diff --git a/manager/groups.php b/manager/groups.php index 6b72d9b..9af2a13 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -228,7 +228,7 @@ require_once __ROOT__.'/manager/database.php'; /************************************************/ /* déplace un étudiant de son groupe à un autre */ /************************************************/ - case 'move': if( permission('admin') && $_SESSION['annee'] < getCurrentYear() ){ + case 'move': if( permission('admin') && $_SESSION['annee'] >= getCurrentYear() ){ $areSetParam = isset($request->etudiant) && isset($request->groupe) && isset($request->semestre); // les arguments existent $typeOkParam = $areSetParam && is_string($request->etudiant) && is_numeric($request->groupe); // si c'est des strings diff --git a/manager/modules.php b/manager/modules.php index 46f98fe..c360139 100755 --- a/manager/modules.php +++ b/manager/modules.php @@ -112,7 +112,7 @@ require_once __ROOT__.'/manager/database.php'; $anneeCheck = $nEmptyParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons - $semestreList = DataBase::getInstance()->getModulesByUEByYear(null, $request->annee); + $semestreList = DataBase::getInstance()->getModulesByUEByYear(null, $request->annee); // true = on veut les groupes inscrits à chaque module // STRUCTURE // tableau d'UES contenant un tableau de MODULES diff --git a/manager/repo/group.php b/manager/repo/group.php index bbe4631..9b09d33 100755 --- a/manager/repo/group.php +++ b/manager/repo/group.php @@ -327,7 +327,7 @@ class groupRepo extends DBAccess{ * */ public static function getAllGroups(){ - $getGroupList = DataBase::getPDO()->query("SELECT id_groupe as id, nom FROM groupe ORDER BY nom ASC"); + $getGroupList = DataBase::getPDO()->query("SELECT DISTINCT id_groupe as id, nom FROM groupe ORDER BY nom ASC"); // $getGroupList = DataBase::getPDO()->query("SELECT id_groupe as id, nom FROM groupe WHERE length(nom) <= 6 ORDER BY nom ASC"); return DataBase::delNumeric( $getGroupList->fetchAll() ); @@ -335,6 +335,28 @@ class groupRepo extends DBAccess{ + /* retourne les groupes inscrits à un mcc_module + * + * @mcc_module l'UID du mcc_module en question + * + * + * @return groupes retourne la liste des groupes inscrits à ce mcc_module + * + */ + public static function inscritsMccModule($mcc_module){ + $getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom + FROM groupe as g, appartenance as app, mcc_ue, mcc_module as mcc_m + WHERE mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue + AND mcc_ue.id_semestre = app.id_semestre + AND app.id_groupe = g.id_groupe + + AND mcc_m.id_mcc_module = :mcc_module + ORDER BY nom ASC"); + $getGroupeList->execute(array( ':mcc_module' => $mcc_module )); + + return DataBase::delNumeric( $getGroupeList->fetchAll() ); + } + diff --git a/manager/repo/user.php b/manager/repo/user.php index 8debdcf..460ebb7 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -91,6 +91,28 @@ class userRepo extends DBAccess{ + /* retourne si un enseignant enseigne un mcc_module à un groupe + * + * @enseignant l'UID de l'enseignant en question + * @mcc_module l'UID du mcc_module en question + * @groupe l'UID du groupe en question + * + * + * @return enseigne retourne TRUE si l'enseignant enseigne le mcc_module pour ce groupe, FALSE sinon + * + */ + public static function enseigne($enseignant, $mcc_module, $groupe){ + $getEnseignementsListe = DataBase::getPDO()->prepare("SELECT id_enseignement as id + FROM enseignement + WHERE id_enseignant = :enseignant + AND id_mcc_module = :mcc_module + AND id_groupe = :groupe"); + $getEnseignementsListe->execute(array( ':enseignant' => $enseignant, ':mcc_module' => $mcc_module, ':groupe' => $groupe )); + + return $getEnseignementsListe->fetch() !== false; + } + + /* retourne la liste des enseignants de la BDD * @@ -258,37 +280,38 @@ class userRepo extends DBAccess{ - /* ajoute un module qu'un utilisateur peut corriger + /* ajoute un module qu'un utilisateur peut corriger (pour un groupe) * * @utilisateur l'UID de l'utilisateur en question * @mccmodule l'UID du mcc_module à ajouter + * @groupe l'UID du groupe en question * * * @return added VRAI si module ajouté, sinon FALSE * */ - public static function addModule($utilisateur, $mccmodule){ + public static function addModule($utilisateur, $mccmodule, $groupe){ /* [1] On vérifie s'il n'enseigne pas déjà pour ce module ==============================================================*/ $enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id FROM enseignement WHERE id_enseignant = :utilisateur - AND id_mcc_module = :mccmodule"); - $enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule )); + AND id_mcc_module = :mccmodule + AND id_groupe = :groupe"); + $enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule, ':groupe' => $groupe )); - /* [2] Si l'enseignement existe, on retourne "TRUE" + /* [2] Si l'enseignement existe, on retourne TRUE ==============================================================*/ if( $enseignementExiste->fetch() ) return true; - - + /* [3] Si l'enseignement n'existe, on le créé ==============================================================*/ - $creerEnseignement = DataBase::getPDO()->prepare("INSERT INTO enseignement(id_enseignement, id_enseignant, id_mcc_module, correcteur) - VALUES(DEFAULT, :utilisateur, :mccmodule, 1)"); - $creerEnseignement->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule )); - + $creerEnseignement = DataBase::getPDO()->prepare("INSERT INTO enseignement(id_enseignement, id_enseignant, id_mcc_module, id_groupe, correcteur) + VALUES(DEFAULT, :utilisateur, :mccmodule, :groupe, 1)"); + $creerEnseignement->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule, ':groupe' => $groupe )); + /* [4] On vérifie que l'enseignement a été créé @@ -296,8 +319,9 @@ class userRepo extends DBAccess{ $enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id FROM enseignement WHERE id_enseignant = :utilisateur - AND id_mcc_module = :mccmodule"); - $enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule )); + AND id_mcc_module = :mccmodule + AND id_groupe = :groupe"); + $enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule, ':groupe' => $groupe )); return is_array($enseignementExiste->fetch()); @@ -309,19 +333,21 @@ class userRepo extends DBAccess{ * * @utilisateur l'UID de l'utilisateur en question * @mccmodule l'UID du mcc_module à supprimer + * @groupe l'UID du groupe en question * * * @return removed VRAI si module supprimé, sinon FALSE * */ - public static function delModule($utilisateur, $mccmodule){ + public static function delModule($utilisateur, $mccmodule, $groupe){ /* [1] On vérifie s'il n'enseigne pas déjà pour ce module ==============================================================*/ $enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id FROM enseignement WHERE id_enseignant = :utilisateur - AND id_mcc_module = :mccmodule"); - $enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule )); + AND id_mcc_module = :mccmodule + AND id_groupe = :groupe"); + $enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule, ':groupe' => $groupe )); /* [2] Si l'enseignement n'existe pas, on returne "TRUE @@ -339,8 +365,9 @@ class userRepo extends DBAccess{ $enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id FROM enseignement WHERE id_enseignant = :utilisateur - AND id_mcc_module = :mccmodule"); - $enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule )); + AND id_mcc_module = :mccmodule + AND id_groupe = :groupe"); + $enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule, ':groupe' => $groupe )); return !is_array($enseignementExiste->fetch()); diff --git a/manager/user.php b/manager/user.php index 889d444..839fae3 100755 --- a/manager/user.php +++ b/manager/user.php @@ -143,7 +143,7 @@ require_once __ROOT__.'/manager/database.php'; * delModule Si NULL, on n'enlève aucun module * */ - case 'updateRole': if( permission('admin') && $_SESSION['annee'] < getCurrentYear() ){ + case 'updateRole': if( permission('admin') && $_SESSION['annee'] >= getCurrentYear() ){ $identifiantCheck = isset($request->identifiant) && is_string($request->identifiant) && preg_match('/^[\w -]{3,50}$/i', $request->identifiant); // identifiant au bon format $adminCheck = $identifiantCheck && ( is_null($request->admin) || is_bool($request->admin) ); // admin ok @@ -151,7 +151,9 @@ require_once __ROOT__.'/manager/database.php'; $addModuleCheck = $masterCheck && ( is_null($request->addModule) || is_numeric($request->addModule) ); // addModule ok $delModuleCheck = $addModuleCheck && ( is_null($request->delModule) || is_numeric($request->delModule) ); // delModule ok - + $groupeOpt = isset($request->groupe) && is_numeric($request->groupe); + if( $groupeOpt ) $groupe = $request->groupe; + else $groupe = null; if( $delModuleCheck ){ @@ -170,12 +172,12 @@ require_once __ROOT__.'/manager/database.php'; /* [3] On ajoute un module en tant que correcteur ======================================================*/ if( $request->addModule != null ) - $response = DataBase::getInstance()->correcteurAjouterModule($request->identifiant, $request->addModule); + $response = DataBase::getInstance()->correcteurAjouterModule($request->identifiant, $request->addModule, $groupe); /* [4] On supprime un module en tant que correcteur ======================================================*/ if( $request->delModule != null ) - $response = DataBase::getInstance()->correcteurSupprimerModule($request->identifiant, $request->delModule); + $response = DataBase::getInstance()->correcteurSupprimerModule($request->identifiant, $request->delModule, $groupe); if( is_bool($response) ) $answer->request = ($response) ? 'success' : 'error'; diff --git a/page/_JS/settings.js b/page/_JS/settings.js index 81ce9b1..3ac9f75 100755 --- a/page/_JS/settings.js +++ b/page/_JS/settings.js @@ -106,11 +106,16 @@ if( roleSection != null ){ // liste des checkbox pour la caractère "référent" (CHECKBOX) var checkMaster = document.querySelectorAll('#CONTAINER section[name=attributionrole] .check_master[data-usr]'); - // liste des modules que l'on peut supprimer (CHECKBOX) - var delModules = document.querySelectorAll('#CONTAINER section[name=attributionrole] .del_module[data-mccmod]'); - // liste des modules que l'on peut ajouter (BOUTON) - var addModules = document.querySelectorAll('#CONTAINER section[name=attributionrole] .set_correcteur'); + // liste des enseignements pour modules à supprimer ("Supprimer") + var delModules = document.querySelectorAll('#CONTAINER section[name=attributionrole] .del.enseignement[data-usr][data-mccmod]'); + + // liste des enseignements à ajouter (BOUTON) + var addModules = document.querySelectorAll('#CONTAINER section[name=attributionrole] .set_correcteur'); + + // liste des enseignements de groupes pour des modules que l'on peut ajouter/supprimer (CHECKBOX) + var switchModuleGroupe = document.querySelectorAll('#CONTAINER section[name=attributionrole] .del_module[data-usr][data-mccmod][data-grp]'); + @@ -176,12 +181,17 @@ if( roleSection != null ){ - /*** SUPPRIMER UN MODULE POUR UN UTILISATEUR ***/ - for( var i = 0 ; i < delModules.length ; i++ ){ - delModules[i].addEventListener('change', function(e){ + + + /*** AJOUTER/SUPPRIMER UN MODULE POUR UN GROUPE POUR UN UTILISATEUR ***/ + for( var i = 0 ; i < switchModuleGroupe.length ; i++ ){ + + switchModuleGroupe[i].addEventListener('change', function(e){ // si l'élément est correct // si décoché, on supprime - if( typeof e.target.checked == 'boolean' && e.target.dataset.hasOwnProperty('usr') && e.target.dataset.hasOwnProperty('mccmod') && !e.target.checked ){ + if( typeof e.target.checked == 'boolean' && e.target.dataset.hasOwnProperty('usr') && e.target.dataset.hasOwnProperty('grp') && e.target.dataset.hasOwnProperty('mccmod') ){ + var addModState = ( e.target.checked ) ? e.target.dataset.mccmod : null; + var delModState = ( !e.target.checked ) ? e.target.dataset.mccmod : null; // on met à jour le status var request = { @@ -190,12 +200,13 @@ if( roleSection != null ){ identifiant: e.target.dataset.usr, admin: null, master: null, - addModule: null, - delModule: e.target.dataset.mccmod + addModule: addModState, + delModule: delModState, + groupe: e.target.dataset.grp }; API.send(request, function(answer){ - if( answer.request != 'success' ) console.log('erreur de changement de rôle (delModule)'); + if( answer.request != 'success' ) console.log('erreur de changement de rôle'); reload(); }); @@ -215,7 +226,7 @@ if( roleSection != null ){ addModules[i].addEventListener('click', function(e){ var associatedSelect = e.target.parentNode.parentNode.children[0].children[0]; console.log( associatedSelect ); - // si l'élément est correct // si décoché, on supprime + // si l'élément est correct if( e.target.dataset.hasOwnProperty('usr') && associatedSelect.tagName == 'SELECT' && associatedSelect.getAttribute('name') == 'modules' ){ // on met à jour le status @@ -230,7 +241,39 @@ if( roleSection != null ){ }; API.send(request, function(answer){ - if( answer.request != 'success' ) console.log('erreur de changement de rôle (delModule)'); + if( answer.request != 'success' ) console.log('erreur de changement de rôle'); + reload(); + }); + + } + }, false); + + } + + + + + /*** SUPPRIMER UN MODULE POUR UN UTILISATEUR ***/ + for( var i = 0 ; i < delModules.length ; i++ ){ + + delModules[i].addEventListener('click', function(e){ + + // si l'élément est correct + if( e.target.dataset.hasOwnProperty('usr') && e.target.dataset.hasOwnProperty('mccmod') ){ + + // on met à jour le status + var request = { + level_0: 'user', + level_1: 'updateRole', + identifiant: e.target.dataset.usr, + admin: null, + master: null, + addModule: null, + delModule: e.target.dataset.mccmod + }; + + API.send(request, function(answer){ + if( answer.request != 'success' ) console.log('erreur de changement de rôle'); reload(); }); diff --git a/page/settings.php b/page/settings.php index 34eb5a9..eed3dcc 100755 --- a/page/settings.php +++ b/page/settings.php @@ -77,7 +77,7 @@ if( permission('admin') ){ modules_switch_level_1($rAffinage, $aAffinage); - // création de la requête + // création de la requête d'affichage des utilisateurs à rôles $request = new stdClass(); $answer = new stdClass(); $request->level_1 = 'getListeEnseignantsModules'; @@ -193,8 +193,6 @@ if( permission('admin') ){ - // var_dump( $answer->userlist ); - echo ""; foreach($answer->userlist as $user){ echo ""; @@ -222,7 +220,7 @@ if( permission('admin') ){ /* LISTE DES MODULES CORRIGEABLES */ $userModulesUID = array(); - echo "
"; + echo "
"; echo ""; if( $user['semestreList'] != null ){ @@ -234,10 +232,16 @@ if( permission('admin') ){ echo ""; echo ""; echo ""; - echo ""; + echo ""; echo ""; + echo ""; array_push($userModulesUID, $module['id']); } diff --git a/test.php b/test.php index cf8d92a..5622478 100755 --- a/test.php +++ b/test.php @@ -45,7 +45,7 @@ require_once __ROOT__.'/manager/security.php'; debug(); -var_dump( $_SESSION['annee'] ); + // $_SESSION['annee'] = 2015; // require_once __ROOT__.'/manager/phpExcel.php';
".$module['nom']." - ".$module['libelle']."".$ue['nom']." - ".$ue['libelle']."".$semestre['formation']." - ".$semestre['nom'].""; - echo " correcteur"; - echo "
Supprimer
"; + foreach($module['groupes'] as $groupe){ + if( $groupe['enseigne'] === true ) + echo "   ".$groupe['nom']." / "; + else + echo "   ".$groupe['nom']." / "; + } + echo "