[x] Déployer et remodeler: enseignement de groupe & mcc_module

+ définir les requêtes à modifier
	+ définir les actions qui auront de conséquences
	+ modifier les requêtes
	+ modifier l'interface
	+ modifier le déploiement
This commit is contained in:
xdrm-brackets 2015-12-01 18:15:44 +01:00
parent 7b98cb3299
commit e89e992894
6 changed files with 31 additions and 18 deletions

View File

@ -534,7 +534,7 @@ class DataBase{
// on cherche si cet enseignant enseigne un semestre courant de cette année // 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'; if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher';
// on récupère la liste des groupes // on récupère la liste des groupes
$grouplist = DataBase::delNumeric( groupRepo::forTeacher($enseignantUID, $semestre_pair, $annee) ); $grouplist = DataBase::delNumeric( groupRepo::forTeacher($enseignantUID, $semestre_pair, $annee) );
@ -844,7 +844,7 @@ class DataBase{
public function getControlesEnseignant($enseignant, $semestre_pair, $annee){ public function getControlesEnseignant($enseignant, $semestre_pair, $annee){
// on vérifie que le semestre existe et que l'enseignant y enseigne // 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'; if( !($enseignantUID=userRepo::UID($enseignant, null, $semestre_pair, $annee)) ) return 'unknown_teacher';
debug();
// on récupère les semestres de cette année // on récupère les semestres de cette année
$semestreList = semestreRepo::forTeacher($enseignantUID, $semestre_pair, $annee); $semestreList = semestreRepo::forTeacher($enseignantUID, $semestre_pair, $annee);
@ -917,7 +917,7 @@ class DataBase{
public function getNotesForControleEnseignant($enseignant, $annee, $controle, $groupe=null){ // [OPTIONNEL] $groupe public function getNotesForControleEnseignant($enseignant, $annee, $controle, $groupe=null){ // [OPTIONNEL] $groupe
// on récupère les informations du contrôle // 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 // on ajoute la moyenne au contrôle
$controlObj['moyenne'] = noteRepo::moyenneForControle($controlObj['id']); $controlObj['moyenne'] = noteRepo::moyenneForControle($controlObj['id']);
@ -938,14 +938,12 @@ class DataBase{
/* [2] si on veut par groupe /* [2] si on veut par groupe
=======================================*/ =======================================*/
}else{ }else{
$controlObj['grouplist'] = groupRepo::forControle($controle); $controlObj['grouplist'] = groupRepo::forControle($controle, $enseignant);
foreach($controlObj['grouplist'] as $iter=>$grpe) foreach($controlObj['grouplist'] as $iter=>$grpe)
if( $controleNotes = noteRepo::forGroupe($controle, $grpe['id_groupe']) ) // si le groupe a des notes, on les ajoutes 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); $controlObj['grouplist'][$iter] = array_merge($controlObj['grouplist'][$iter], $controleNotes);
// var_dump( $controlObj );
debug();
} }
return $controlObj; return $controlObj;
@ -960,6 +958,9 @@ class DataBase{
/*******************************************/ /*******************************************/
public function getNotesForControle($annee, $controle, $groupe=null){ // [OPTIONNEL] $groupe 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 // on récupère les informations du contrôle
if( ! ($controlObj=controleRepo::info($controle)) ) return 'unknown_controle'; if( ! ($controlObj=controleRepo::info($controle)) ) return 'unknown_controle';
@ -983,6 +984,7 @@ class DataBase{
=======================================*/ =======================================*/
}else{ }else{
$controlObj['grouplist'] = groupRepo::forControle($controle); $controlObj['grouplist'] = groupRepo::forControle($controle);
var_dump( $controlObj['grouplist'] );
foreach($controlObj['grouplist'] as $iter=>$grpe) foreach($controlObj['grouplist'] as $iter=>$grpe)
if( $controleNotes = noteRepo::forGroupe($controle, $grpe['id_groupe']) ) // si le groupe a des notes, on les ajoutes if( $controleNotes = noteRepo::forGroupe($controle, $grpe['id_groupe']) ) // si le groupe a des notes, on les ajoutes

View File

@ -20,7 +20,7 @@ class controleRepo extends DBAccess{
* @return controle<Array> tableau associatif contenant tout les champs de la BDD pour ce controle * @return controle<Array> 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 ){ if( $enseignant == null ){
/* [1] On cherche juste le contrôle avec l'id spécifié /* [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 }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 /* [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.id_mcc_module = mcc_m.id_mcc_module
AND ens.correcteur = 1 AND ens.correcteur = 1
AND ens.id_enseignant = :enseignant AND ens.id_enseignant = :enseignant
AND ens.id_groupe LIKE '$groupeUID'
AND ctrl.id_controle = :controleUID AND ctrl.id_controle = :controleUID

View File

@ -269,19 +269,28 @@ class groupRepo extends DBAccess{
* *
* @controle<int> l'UID du contrôle en question * @controle<int> l'UID du contrôle en question
* *
* @enseignant<int> ***OPTIONNEL*** l'UID de l'enseignant en question
* *
*
* @return groupes<Array> retourne un tableau contenant les groupes inscrits à ce contrôle * @return groupes<Array> retourne un tableau contenant les groupes inscrits à ce contrôle
* @return FALSE<Boolean> retourne FALSE si aucun groupe n'y est inscrit * @return FALSE<Boolean> retourne FALSE si aucun groupe n'y est inscrit
* *
*/ */
public static function forControle($controle){ public static function forControle($controle, $enseignant=null){
$getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe, g.nom $enseignantUID = (is_string($enseignant)) ? $enseignant : '%';
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
$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 AND ctrl.id_controle = :controle
ORDER BY g.nom ASC"); ORDER BY g.nom ASC");
$getGroupeList->execute(array( ':controle' => $controle )); $getGroupeList->execute(array( ':controle' => $controle ));

View File

@ -331,9 +331,9 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif
$request = new stdClass(); $answer = new stdClass(); $request = new stdClass(); $answer = new stdClass();
$request->level_1 = 'getNotesEnseignant'; $request->level_1 = 'getNotesEnseignant';
$request->enseignant = $_SESSION['identifiant']; $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é if( $groupeOpt != null ) $request->groupe = $groupeOpt; // on définit le groupe s'il est spécifié
career_switch_level_1($request, $answer); career_switch_level_1($request, $answer);

View File

@ -204,7 +204,7 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un
groups_switch_level_1($request, $answer); 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 if( $answer->request == 'success' && $answer->request == 'success' && count($answer->grouplist) > 0 ){ // si on a bien récupéré les membres du groupe
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////

View File

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