Déploiement de l'intégration/modification des enseignements + déploiement à l'interface de modification des rôles, reste affiche à déployer et modifier.

[x] Modifier modèle: prof corrige un GROUPE pour un module
	+ modifier BDD
	+ afficher les groupes pour le changement de rôles
	+ intégrer la modification au changement de rôles
This commit is contained in:
xdrm-brackets 2015-11-30 21:46:40 +01:00
parent 75265c8987
commit 83fd11cf15
12 changed files with 251 additions and 62 deletions

2
API.js
View File

@ -51,7 +51,7 @@ APIClass.prototype = {
if( ptrAPI.xhr[i].readyState == 4 ){ // si la requête est terminée if( ptrAPI.xhr[i].readyState == 4 ){ // si la requête est terminée
/* DEBUG : affiche la réponse BRUTE de API.php */ /* 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) ); console.log( JSON.parse(ptrAPI.xhr[i].responseText) );
/* si success de requête */ /* si success de requête */

View File

@ -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 */ 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{ .confirm{
/* position */ /* position */
/*display: inline-block;*/ display: none; /*display: inline-block;*/ display: none;
@ -295,6 +323,7 @@ div.p.center select{
} }
.confirm [type=file]{ .confirm [type=file]{
/* position */ /* position */
display: block; display: block;

View File

@ -217,7 +217,7 @@ require_once __ROOT__.'/manager/database.php';
/****************************************************/ /****************************************************/
/* saisie d'une note pour un étudiant à un contrôle */ /* 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 $areSetParam = isset($request->etudiant) && isset($request->controle) && isset($request->note); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings $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 */ /* 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 $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 $typeOkParam = $areSetParam && is_array($request->notes) && is_numeric($request->controle); // si c'est des strings

View File

@ -345,15 +345,39 @@ class DataBase{
* @utilisateur<String> l'UID de l'utilisateur en question * @utilisateur<String> l'UID de l'utilisateur en question
* @mccmodule<int> l'UID du mcc_module à ajouter * @mccmodule<int> l'UID du mcc_module à ajouter
* *
* @groupe<int> ***OPTIONNEL*** l'UID du groupe à ajouter
*
* *
* @return added<Boolean> VRAI si module ajouté, sinon FALSE * @return added<Boolean> VRAI si module ajouté, sinon FALSE
* *
*/ */
public function correcteurAjouterModule($utilisateur, $mccmodule){ public function correcteurAjouterModule($utilisateur, $mccmodule, $groupe=null){
// on vérifie l'existence de l'utilisateur // on vérifie l'existence de l'utilisateur et du groupe
if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user'; if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user';
return userRepo::addModule($utilisateurUID, $mccmodule); if( $groupe != null ) // si un groupe est donné, on le cherche
if( !($groupeUID=groupRepo::info($groupe)['id']) ) return 'unknown_group';
// 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<String> l'UID de l'utilisateur en question * @utilisateur<String> l'UID de l'utilisateur en question
* @mccmodule<int> l'UID du mcc_module à supprimer * @mccmodule<int> l'UID du mcc_module à supprimer
* *
* @groupe<int> ***OPTIONNEL*** l'UID du groupe à supprimer
*
* *
* @return removed<Boolean> VRAI si module supprimé, sinon FALSE * @return removed<Boolean> 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 // on vérifie l'existence de l'utilisateur
if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user'; if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user';
return userRepo::delModule($utilisateurUID, $mccmodule); if( $groupe != null ) // si un groupe est donné, on le cherche
if( !($groupeUID=groupRepo::info($groupe)['id']) ) return 'unknown_group';
// 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,9 +674,24 @@ class DataBase{
foreach($semestreList as $iter_s=>$a){ foreach($semestreList as $iter_s=>$a){
$semestreList[$iter_s]['UElist'] = ueRepo::forTeacher($enseignantUID, $semestreList[$iter_s]['id']); $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']); $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']);
}
}
}
} }
return $semestreList; return $semestreList;
@ -646,15 +709,14 @@ class DataBase{
// on récupère les semestres de cette année // on récupère les semestres de cette année
$semestreList = semestreRepo::forYear($annee); $semestreList = semestreRepo::forYear($annee);
foreach($semestreList as $iter_s=>$a){ foreach($semestreList as $iter_s=>$SEMESTRE){
$semestreList[$iter_s]['UElist'] = ueRepo::forYear($semestreList[$iter_s]['id']); $semestreList[$iter_s]['UElist'] = ueRepo::forYear($SEMESTRE['id']);
foreach($semestreList[$iter_s]['UElist'] as $iter_u=>$b){ foreach($semestreList[$iter_s]['UElist'] as $iter_u=>$UE)
$semestreList[$iter_s]['UElist'][$iter_u]['modules'] = moduleRepo::forYear($semestreList[$iter_s]['UElist'][$iter_u]['id'], $semestreList[$iter_s]['id']); $semestreList[$iter_s]['UElist'][$iter_u]['modules'] = moduleRepo::forYear($UE['id'], $SEMESTRE['id']);
} }
}
return $semestreList; return $semestreList;
} }

View File

@ -228,7 +228,7 @@ require_once __ROOT__.'/manager/database.php';
/************************************************/ /************************************************/
/* déplace un étudiant de son groupe à un autre */ /* 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 $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 $typeOkParam = $areSetParam && is_string($request->etudiant) && is_numeric($request->groupe); // si c'est des strings

View File

@ -112,7 +112,7 @@ require_once __ROOT__.'/manager/database.php';
$anneeCheck = $nEmptyParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format $anneeCheck = $nEmptyParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons 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 // STRUCTURE
// tableau d'UES contenant un tableau de MODULES // tableau d'UES contenant un tableau de MODULES

View File

@ -327,7 +327,7 @@ class groupRepo extends DBAccess{
* *
*/ */
public static function getAllGroups(){ 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"); // $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() ); return DataBase::delNumeric( $getGroupList->fetchAll() );
@ -335,6 +335,28 @@ class groupRepo extends DBAccess{
/* retourne les groupes inscrits à un mcc_module
*
* @mcc_module<int> l'UID du mcc_module en question
*
*
* @return groupes<Array> 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() );
}

View File

@ -91,6 +91,28 @@ class userRepo extends DBAccess{
/* retourne si un enseignant enseigne un mcc_module à un groupe
*
* @enseignant<String> l'UID de l'enseignant en question
* @mcc_module<int> l'UID du mcc_module en question
* @groupe<int> l'UID du groupe en question
*
*
* @return enseigne<Boolean> 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 /* retourne la liste des enseignants de la BDD
* *
@ -258,36 +280,37 @@ class userRepo extends DBAccess{
/* ajoute un module qu'un utilisateur peut corriger /* ajoute un module qu'un utilisateur peut corriger (pour un groupe)
* *
* @utilisateur<String> l'UID de l'utilisateur en question * @utilisateur<String> l'UID de l'utilisateur en question
* @mccmodule<int> l'UID du mcc_module à ajouter * @mccmodule<int> l'UID du mcc_module à ajouter
* @groupe<int> l'UID du groupe en question
* *
* *
* @return added<Boolean> VRAI si module ajouté, sinon FALSE * @return added<Boolean> 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 /* [1] On vérifie s'il n'enseigne pas déjà pour ce module
==============================================================*/ ==============================================================*/
$enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id $enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id
FROM enseignement FROM enseignement
WHERE id_enseignant = :utilisateur WHERE id_enseignant = :utilisateur
AND id_mcc_module = :mccmodule"); AND id_mcc_module = :mccmodule
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $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; if( $enseignementExiste->fetch() ) return true;
/* [3] Si l'enseignement n'existe, on le créé /* [3] Si l'enseignement n'existe, on le créé
==============================================================*/ ==============================================================*/
$creerEnseignement = DataBase::getPDO()->prepare("INSERT INTO enseignement(id_enseignement, id_enseignant, id_mcc_module, correcteur) $creerEnseignement = DataBase::getPDO()->prepare("INSERT INTO enseignement(id_enseignement, id_enseignant, id_mcc_module, id_groupe, correcteur)
VALUES(DEFAULT, :utilisateur, :mccmodule, 1)"); VALUES(DEFAULT, :utilisateur, :mccmodule, :groupe, 1)");
$creerEnseignement->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule )); $creerEnseignement->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule, ':groupe' => $groupe ));
@ -296,8 +319,9 @@ class userRepo extends DBAccess{
$enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id $enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id
FROM enseignement FROM enseignement
WHERE id_enseignant = :utilisateur WHERE id_enseignant = :utilisateur
AND id_mcc_module = :mccmodule"); AND id_mcc_module = :mccmodule
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule )); AND id_groupe = :groupe");
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule, ':groupe' => $groupe ));
return is_array($enseignementExiste->fetch()); return is_array($enseignementExiste->fetch());
@ -309,19 +333,21 @@ class userRepo extends DBAccess{
* *
* @utilisateur<String> l'UID de l'utilisateur en question * @utilisateur<String> l'UID de l'utilisateur en question
* @mccmodule<int> l'UID du mcc_module à supprimer * @mccmodule<int> l'UID du mcc_module à supprimer
* @groupe<int> l'UID du groupe en question
* *
* *
* @return removed<Boolean> VRAI si module supprimé, sinon FALSE * @return removed<Boolean> 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 /* [1] On vérifie s'il n'enseigne pas déjà pour ce module
==============================================================*/ ==============================================================*/
$enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id $enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id
FROM enseignement FROM enseignement
WHERE id_enseignant = :utilisateur WHERE id_enseignant = :utilisateur
AND id_mcc_module = :mccmodule"); AND id_mcc_module = :mccmodule
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule )); AND id_groupe = :groupe");
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule, ':groupe' => $groupe ));
/* [2] Si l'enseignement n'existe pas, on returne "TRUE /* [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 $enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id
FROM enseignement FROM enseignement
WHERE id_enseignant = :utilisateur WHERE id_enseignant = :utilisateur
AND id_mcc_module = :mccmodule"); AND id_mcc_module = :mccmodule
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule )); AND id_groupe = :groupe");
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule, ':groupe' => $groupe ));
return !is_array($enseignementExiste->fetch()); return !is_array($enseignementExiste->fetch());

View File

@ -143,7 +143,7 @@ require_once __ROOT__.'/manager/database.php';
* delModule<NULL> Si NULL, on n'enlève aucun module * delModule<NULL> 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 $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 $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 $addModuleCheck = $masterCheck && ( is_null($request->addModule) || is_numeric($request->addModule) ); // addModule ok
$delModuleCheck = $addModuleCheck && ( is_null($request->delModule) || is_numeric($request->delModule) ); // delModule 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 ){ if( $delModuleCheck ){
@ -170,12 +172,12 @@ require_once __ROOT__.'/manager/database.php';
/* [3] On ajoute un module en tant que correcteur /* [3] On ajoute un module en tant que correcteur
======================================================*/ ======================================================*/
if( $request->addModule != null ) 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 /* [4] On supprime un module en tant que correcteur
======================================================*/ ======================================================*/
if( $request->delModule != null ) 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) ) if( is_bool($response) )
$answer->request = ($response) ? 'success' : 'error'; $answer->request = ($response) ? 'success' : 'error';

View File

@ -106,12 +106,17 @@ if( roleSection != null ){
// liste des checkbox pour la caractère "référent" (CHECKBOX) // liste des checkbox pour la caractère "référent" (CHECKBOX)
var checkMaster = document.querySelectorAll('#CONTAINER section[name=attributionrole] .check_master[data-usr]'); 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) // 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'); 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]');
/*** CHANGEMENT DE STATUS POUR "ADMIN" ***/ /*** CHANGEMENT DE STATUS POUR "ADMIN" ***/
@ -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 // 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 // on met à jour le status
var request = { var request = {
@ -190,12 +200,13 @@ if( roleSection != null ){
identifiant: e.target.dataset.usr, identifiant: e.target.dataset.usr,
admin: null, admin: null,
master: null, master: null,
addModule: null, addModule: addModState,
delModule: e.target.dataset.mccmod delModule: delModState,
groupe: e.target.dataset.grp
}; };
API.send(request, function(answer){ 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(); reload();
}); });
@ -215,7 +226,7 @@ if( roleSection != null ){
addModules[i].addEventListener('click', function(e){ addModules[i].addEventListener('click', function(e){
var associatedSelect = e.target.parentNode.parentNode.children[0].children[0]; console.log( associatedSelect ); 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' ){ if( e.target.dataset.hasOwnProperty('usr') && associatedSelect.tagName == 'SELECT' && associatedSelect.getAttribute('name') == 'modules' ){
// on met à jour le status // on met à jour le status
@ -230,7 +241,39 @@ if( roleSection != null ){
}; };
API.send(request, function(answer){ 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(); reload();
}); });

View File

@ -77,7 +77,7 @@ if( permission('admin') ){
modules_switch_level_1($rAffinage, $aAffinage); 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 = new stdClass(); $answer = new stdClass();
$request->level_1 = 'getListeEnseignantsModules'; $request->level_1 = 'getListeEnseignantsModules';
@ -193,8 +193,6 @@ if( permission('admin') ){
// var_dump( $answer->userlist );
echo "<table class='basic col5'><tbody>"; echo "<table class='basic col5'><tbody>";
foreach($answer->userlist as $user){ foreach($answer->userlist as $user){
echo "<tr>"; echo "<tr>";
@ -222,7 +220,7 @@ if( permission('admin') ){
/* LISTE DES MODULES CORRIGEABLES */ /* LISTE DES MODULES CORRIGEABLES */
$userModulesUID = array(); $userModulesUID = array();
echo "<tr class='transparentbg noborder'><td></td><td colspan=4>"; echo "<tr class='transparentbg noborder'><td></td><td class='nopadding' colspan=4>";
echo "<table class='basic col4'><tbody>"; echo "<table class='basic col4'><tbody>";
if( $user['semestreList'] != null ){ if( $user['semestreList'] != null ){
@ -234,10 +232,16 @@ if( permission('admin') ){
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>";
echo "<td>".$semestre['formation']." - ".$semestre['nom']."</td>"; echo "<td>".$semestre['formation']." - ".$semestre['nom']."</td>";
echo "<td>"; echo "<td><div class='del enseignement' data-usr='".$user['id']."' data-mccmod='".$module['id_mcc_module']."'>Supprimer</div></td>";
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 "</tr>"; echo "</tr>";
echo "<tr ><td class='nopadding' colspan=4>";
foreach($module['groupes'] as $groupe){
if( $groupe['enseigne'] === true )
echo "&nbsp&nbsp<input data-usr='".$user['id']."' data-grp='".$groupe['id']."' data-mccmod='".$module['id_mcc_module']."' class='del_module' type='checkbox' id='".$user['id']."correcteur".$module['id']."groupe".$groupe['id']."' checked><label for='".$user['id']."correcteur".$module['id']."groupe".$groupe['id']."'></label> ".$groupe['nom']." / ";
else
echo "&nbsp&nbsp<input data-usr='".$user['id']."' data-grp='".$groupe['id']."' data-mccmod='".$module['id_mcc_module']."' class='del_module' type='checkbox' id='".$user['id']."correcteur".$module['id']."groupe".$groupe['id']."' ><label for='".$user['id']."correcteur".$module['id']."groupe".$groupe['id']."'></label> ".$groupe['nom']." / ";
}
echo "</td>";
array_push($userModulesUID, $module['id']); array_push($userModulesUID, $module['id']);
} }

View File

@ -45,7 +45,7 @@ require_once __ROOT__.'/manager/security.php';
debug(); debug();
var_dump( $_SESSION['annee'] );
// $_SESSION['annee'] = 2015; // $_SESSION['annee'] = 2015;
// require_once __ROOT__.'/manager/phpExcel.php'; // require_once __ROOT__.'/manager/phpExcel.php';