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:
parent
75265c8987
commit
83fd11cf15
2
API.js
2
API.js
|
@ -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 */
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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';
|
||||||
|
|
|
@ -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();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -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 "  <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 "  <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']);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue