[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
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

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
*
*/
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

View File

@ -269,19 +269,28 @@ class groupRepo extends DBAccess{
*
* @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 FALSE<Boolean> 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 ));

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->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);

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);
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
////////////////////////////////////////////////////////////////////////////////

View File

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