From e89e9928942ff25e4014d74e6e2b5b7cf08fe87c Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Tue, 1 Dec 2015 18:15:44 +0100 Subject: [PATCH] =?UTF-8?q?[x]=20D=C3=A9ployer=20et=20remodeler:=20enseign?= =?UTF-8?q?ement=20de=20groupe=20&=20mcc=5Fmodule=20=09+=20d=C3=A9finir=20?= =?UTF-8?q?les=20requ=C3=AAtes=20=C3=A0=20modifier=20=09+=20d=C3=A9finir?= =?UTF-8?q?=20les=20actions=20qui=20auront=20de=20cons=C3=A9quences=20=09+?= =?UTF-8?q?=20modifier=20les=20requ=C3=AAtes=20=09+=20modifier=20l'interfa?= =?UTF-8?q?ce=20=09+=20modifier=20le=20d=C3=A9ploiement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/database.php | 14 ++++++++------ manager/repo/controle.php | 4 +++- manager/repo/group.php | 23 ++++++++++++++++------- page/career.php | 4 ++-- page/groups.php | 2 +- test.php | 2 +- 6 files changed, 31 insertions(+), 18 deletions(-) diff --git a/manager/database.php b/manager/database.php index 7d68443..b291858 100755 --- a/manager/database.php +++ b/manager/database.php @@ -534,7 +534,7 @@ class DataBase{ // on cherche si cet enseignant enseigne un semestre courant de cette année if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher'; - + // on récupère la liste des groupes $grouplist = DataBase::delNumeric( groupRepo::forTeacher($enseignantUID, $semestre_pair, $annee) ); @@ -844,7 +844,7 @@ class DataBase{ public function getControlesEnseignant($enseignant, $semestre_pair, $annee){ // on vérifie que le semestre existe et que l'enseignant y enseigne if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher'; - debug(); + // on récupère les semestres de cette année $semestreList = semestreRepo::forTeacher($enseignantUID, $semestre_pair, $annee); @@ -917,7 +917,7 @@ class DataBase{ public function getNotesForControleEnseignant($enseignant, $annee, $controle, $groupe=null){ // [OPTIONNEL] $groupe // on récupère les informations du contrôle - if( ! ($controlObj=controleRepo::info($controle, $enseignant)) ) return 'unknown_controle'; + if( !($controlObj=controleRepo::info($controle, $enseignant, $groupe)) ) return 'unknown_controle'; // on ajoute la moyenne au contrôle $controlObj['moyenne'] = noteRepo::moyenneForControle($controlObj['id']); @@ -938,14 +938,12 @@ class DataBase{ /* [2] si on veut par groupe =======================================*/ }else{ - $controlObj['grouplist'] = groupRepo::forControle($controle); + $controlObj['grouplist'] = groupRepo::forControle($controle, $enseignant); foreach($controlObj['grouplist'] as $iter=>$grpe) if( $controleNotes = noteRepo::forGroupe($controle, $grpe['id_groupe']) ) // si le groupe a des notes, on les ajoutes $controlObj['grouplist'][$iter] = array_merge($controlObj['grouplist'][$iter], $controleNotes); - // var_dump( $controlObj ); - debug(); } return $controlObj; @@ -960,6 +958,9 @@ class DataBase{ /*******************************************/ public function getNotesForControle($annee, $controle, $groupe=null){ // [OPTIONNEL] $groupe + // on vérifie que le semestre existe et que l'enseignant y enseigne + if( !($enseignantUID=userRepo::UID($enseignant)) ) return 'unknown_teacher'; + // on récupère les informations du contrôle if( ! ($controlObj=controleRepo::info($controle)) ) return 'unknown_controle'; @@ -983,6 +984,7 @@ class DataBase{ =======================================*/ }else{ $controlObj['grouplist'] = groupRepo::forControle($controle); + var_dump( $controlObj['grouplist'] ); foreach($controlObj['grouplist'] as $iter=>$grpe) if( $controleNotes = noteRepo::forGroupe($controle, $grpe['id_groupe']) ) // si le groupe a des notes, on les ajoutes diff --git a/manager/repo/controle.php b/manager/repo/controle.php index e62a3ab..29466e8 100755 --- a/manager/repo/controle.php +++ b/manager/repo/controle.php @@ -20,7 +20,7 @@ class controleRepo extends DBAccess{ * @return controle tableau associatif contenant tout les champs de la BDD pour ce controle * */ - public static function info($controleUID, $enseignant=null){ + public static function info($controleUID, $enseignant=null, $groupe=null){ if( $enseignant == null ){ /* [1] On cherche juste le contrôle avec l'id spécifié @@ -41,6 +41,7 @@ class controleRepo extends DBAccess{ )); }else{ // cas où on cherche un contrôle qu'un enseignant corrige + $groupeUID = (is_numeric($groupe)) ? $groupe : '%'; /* [2] On cherche le contrôle avec l'id spécifié qu'enseignant l'@enseignant ==============================================================================*/ @@ -53,6 +54,7 @@ class controleRepo extends DBAccess{ AND ens.id_mcc_module = mcc_m.id_mcc_module AND ens.correcteur = 1 AND ens.id_enseignant = :enseignant + AND ens.id_groupe LIKE '$groupeUID' AND ctrl.id_controle = :controleUID diff --git a/manager/repo/group.php b/manager/repo/group.php index 245c816..9885135 100755 --- a/manager/repo/group.php +++ b/manager/repo/group.php @@ -269,19 +269,28 @@ class groupRepo extends DBAccess{ * * @controle l'UID du contrôle en question * + * @enseignant ***OPTIONNEL*** l'UID de l'enseignant en question * + * * @return groupes retourne un tableau contenant les groupes inscrits à ce contrôle * @return FALSE retourne FALSE si aucun groupe n'y est inscrit * */ - public static function forControle($controle){ - $getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe, g.nom - FROM groupe as g, appartenance as app, mcc_ue, mcc_module as mcc_m, controle as ctrl - WHERE app.id_groupe = g.id_groupe - AND ctrl.id_mcc_module = mcc_m.id_mcc_module - AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue - AND app.id_semestre = mcc_ue.id_semestre + public static function forControle($controle, $enseignant=null){ + $enseignantUID = (is_string($enseignant)) ? $enseignant : '%'; + $getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe, g.nom + FROM groupe as g, mcc_module as mcc_m, controle as ctrl, enseignement as ens + -- WHERE app.id_groupe = g.id_groupe + -- AND ens.id_groupe = g.id_groupe + -- AND ens.id_mcc_module = mcc_m.id_mcc_module + -- AND ctrl.id_mcc_module = mcc_m.id_mcc_module + -- AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue + -- AND app.id_semestre = mcc_ue.id_semestre + WHERE ctrl.id_mcc_module = ens.id_mcc_module + AND ens.id_groupe = g.id_groupe + + AND ens.id_enseignant LIKE '$enseignantUID' AND ctrl.id_controle = :controle ORDER BY g.nom ASC"); $getGroupeList->execute(array( ':controle' => $controle )); diff --git a/page/career.php b/page/career.php index 0f420ce..1e976b7 100755 --- a/page/career.php +++ b/page/career.php @@ -331,9 +331,9 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif $request = new stdClass(); $answer = new stdClass(); - $request->level_1 = 'getNotesEnseignant'; + $request->level_1 = 'getNotesEnseignant'; $request->enseignant = $_SESSION['identifiant']; - $request->controle = $controleOpt; + $request->controle = $controleOpt; if( $groupeOpt != null ) $request->groupe = $groupeOpt; // on définit le groupe s'il est spécifié career_switch_level_1($request, $answer); diff --git a/page/groups.php b/page/groups.php index 7bcd95f..7d57c06 100755 --- a/page/groups.php +++ b/page/groups.php @@ -204,7 +204,7 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un groups_switch_level_1($request, $answer); - var_dump( $answer ); + // var_dump( $answer ); if( $answer->request == 'success' && $answer->request == 'success' && count($answer->grouplist) > 0 ){ // si on a bien récupéré les membres du groupe //////////////////////////////////////////////////////////////////////////////// diff --git a/test.php b/test.php index 5622478..6e3b493 100755 --- a/test.php +++ b/test.php @@ -45,7 +45,7 @@ require_once __ROOT__.'/manager/security.php'; debug(); - +var_dump( $_SESSION ); // $_SESSION['annee'] = 2015; // require_once __ROOT__.'/manager/phpExcel.php';