From 0172d6b0106d5d25939ad7981dd4c5f9abcd7217 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Thu, 26 Nov 2015 19:06:27 +0100 Subject: [PATCH] Page admin@touscontroles pour 'admin' et 'master' --- manager/career.php | 5 ++-- manager/database.php | 57 ++++++++++++++++++++++++++++++++++++--- manager/repo/controle.php | 2 +- page/_JS/career.js | 21 ++++++++------- page/career.php | 22 ++++++++------- 5 files changed, 80 insertions(+), 27 deletions(-) diff --git a/manager/career.php b/manager/career.php index 7582e11..d2496ca 100755 --- a/manager/career.php +++ b/manager/career.php @@ -136,7 +136,7 @@ require_once __ROOT__.'/manager/database.php'; else $groupe = null; if( $enseignantCheck ){ // si tout les paramètres sont bons - $controle = DataBase::getInstance()->getNotesEnseignant($request->enseignant, $_SESSION['semestre_pair'], $_SESSION['annee'], $request->controle, $groupe); + $controle = DataBase::getInstance()->getNotesForControleEnseignant($request->enseignant, $_SESSION['annee'], $request->controle, $groupe); if( is_array($controle) ){ // si on a bien un tableau $answer->controle = $controle; // on renvoie dans answer->controle @@ -167,9 +167,8 @@ require_once __ROOT__.'/manager/database.php'; // définition (ou pas) du paramètre optionnel if( $optionalGroupe ) $groupe = $request->groupe; else $groupe = null; - if( $nEmptyParam ){ // si tout les paramètres sont bons - $controle = DataBase::getInstance()->getNotesForYear($_SESSION['annee'], $request->controle, $groupe); + $controle = DataBase::getInstance()->getNotesForControle($_SESSION['annee'], $request->controle, $groupe); if( is_array($controle) ){ // si on a bien un tableau $answer->controle = $controle; // on renvoie dans answer->controle diff --git a/manager/database.php b/manager/database.php index b2177d2..631b903 100755 --- a/manager/database.php +++ b/manager/database.php @@ -813,10 +813,10 @@ class DataBase{ - /********************************************/ - /*** retourne les notes pour un contrôle ***/ - /********************************************/ - public function getNotesEnseignant($enseignant, $semestre_pair, $annee, $controle, $groupe=null){ // [OPTIONNEL] $groupe + /***********************************************************/ + /*** retourne les notes pour un contrôle d'un enseignant ***/ + /***********************************************************/ + 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'; @@ -853,6 +853,55 @@ class DataBase{ return $controlObj; } + + + + + /*******************************************/ + /*** retourne les notes pour un contrôle ***/ + /*******************************************/ + public function getNotesForControle($annee, $controle, $groupe=null){ // [OPTIONNEL] $groupe + + // on récupère les informations du contrôle + if( ! ($controlObj=controleRepo::info($controle)) ) return 'unknown_controle'; + + // on ajoute la moyenne au contrôle + $controlObj['moyenne'] = noteRepo::moyenneForControle($controlObj['id']); + + /* [1] si le groupe est donné + =======================================*/ + if( $groupe != null ){ + if( !($groupeUID=groupRepo::UID($groupe)) ) return 'unknown_group'; else $groupeUID = (int) $groupeUID; // on récupère l'UID du groupe + + $controlObj['userlist'] = groupRepo::membres($groupeUID, $controlObj['id_semestre']); // on récupère la liste des étudiants de ce groupe + + foreach($controlObj['userlist'] as $iter=>$note) + if( $resultNote = noteRepo::forStudent($controlObj['userlist'][$iter]['identifiant'], $controle) ) // si l'étudiant a une note pour ce controle + $controlObj['userlist'][$iter]['note'] = $resultNote[0]['valeur']; + else + $controlObj['userlist'][$iter]['note'] = null; + + /* [2] si on veut par groupe + =======================================*/ + }else{ + $controlObj['grouplist'] = groupRepo::forControle($controle); + + 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; + } + + + + + + /******************************************/ /*** saisie note étudiant à un contrôle ***/ diff --git a/manager/repo/controle.php b/manager/repo/controle.php index e00eb3f..237cbb0 100755 --- a/manager/repo/controle.php +++ b/manager/repo/controle.php @@ -14,7 +14,7 @@ class controleRepo extends DBAccess{ * * @controleUID l'UID du controle duquel on veut les infos * - * @enseignant ***OPTIONNEL*** l'UID de l'ensseignant + * @enseignant ***OPTIONNEL*** l'UID de l'enseignant * * * @return controle tableau associatif contenant tout les champs de la BDD pour ce controle diff --git a/page/_JS/career.js b/page/_JS/career.js index 42019fc..76d90c3 100755 --- a/page/_JS/career.js +++ b/page/_JS/career.js @@ -52,15 +52,16 @@ for( var i = 0 ; i < partList.length ; i++ ){ -/***********************************************/ -/* GESTION DE LE FILTRAGE POUR LES ENSEIGNANTS */ -/***********************************************/ -if( document.querySelector('#CONTAINER section[name=controlesenseignants]') ){ // on traite uniquement si la section est définie +/********************************************/ +/* GESTION DU FILTRAGE POUR LES ENSEIGNANTS */ +/********************************************/ +if( document.querySelectorAll('#CONTAINER section[data-controles]').length > 0 ){ // on traite uniquement si la section est définie - controlesenseignantSection = document.querySelector('#CONTAINER section[name=controlesenseignants]'); - if( controlesenseignantSection != null ){ // si la section enseignant est présente sur la page + allControleSections = document.querySelectorAll('#CONTAINER section[data-controles]'); + for( var i = 0 ; i < allControleSections.length ; i++ ){// si la section enseignant/ou admin est présente sur la page + currentSection = allControleSections[i]; - controlesenseignantSection.addEventListener('click', function(e){ // on créé l'évènement + currentSection.addEventListener('click', function(e){ // on créé l'évènement /* LIENS POUR LES GROUPES ET CONTRÔLES */ if( e.target.className == 'link grp ctrl' && e.target.dataset.hasOwnProperty('grp') && e.target.dataset.hasOwnProperty('ctrl') ){ @@ -110,14 +111,14 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') ){ / /* GESTION DE LA SAISIE DE NOTES */ var nombreModification = 0; // contiendra le nombre de notes saisies -if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != null ){ // si c'set l'admin +if( document.querySelector('#CONTAINER section[data-controles]').length > 0 ){ // si c'est l'admin /* SAISIE A L'AIDE DES */ - var saisieInput = document.querySelectorAll('#CONTAINER section[name=controlesenseignants] table tr td input[type=number][data-ctrl].saisie_note'); + var saisieInput = document.querySelectorAll('#CONTAINER section[data-controles] table tr td input[type=number][data-ctrl].saisie_note'); var saisieObj = []; /* BOUTON "TOUT ENREGISTRER" */ - var toutEnregistrerBtn = document.querySelector("#CONTAINER section[name=controlesenseignants] table tr td:last-child .confirm.all"); + var toutEnregistrerBtn = document.querySelector("#CONTAINER section[data-controles] table tr td:last-child .confirm.all"); if( toutEnregistrerBtn != null ){ diff --git a/page/career.php b/page/career.php index 5c4da65..71d02ce 100755 --- a/page/career.php +++ b/page/career.php @@ -172,7 +172,7 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e if( $answer->request == 'success' ){ // si on a bien récupéré les UE/notes //////////////////////////////////////////////////////////////////////////////// - echo "
"; + echo "
"; /* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */ @@ -319,7 +319,7 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e //////////////////////////////////////////////////////////////////////////////// echo '
'; }else - echo "
Aucun contrôle trouvé
"; + echo "
Aucun contrôle trouvé
"; @@ -328,7 +328,6 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e /* [2] Un contrôle particulier( avec ou sans groupe particulier ) ==================================================================*/ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécifié - $request = new stdClass(); $answer = new stdClass(); @@ -340,7 +339,7 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif career_switch_level_1($request, $answer); if( $answer->request == 'success' ){ - echo "
"; + echo "
"; // bouton retour @@ -451,8 +450,10 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif echo ''; + echo "
"; + }else - echo "
Aucun contrôle trouvé
"; + echo "
Aucun contrôle trouvé
"; @@ -513,7 +514,7 @@ if( (permission('master') || permission('admin')) && $controleOpt == null ){ // if( $answer->request == 'success' ){ // si on a bien récupéré les UE/notes //////////////////////////////////////////////////////////////////////////////// - echo "
"; + echo "
"; /* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */ @@ -660,7 +661,7 @@ if( (permission('master') || permission('admin')) && $controleOpt == null ){ // //////////////////////////////////////////////////////////////////////////////// echo '
'; }else - echo "
Aucun contrôle trouvé
"; + echo "
Aucun contrôle trouvé
"; @@ -679,8 +680,9 @@ elseif( permission('master') || permission('admin') ){ // si enseignant et qu'un career_switch_level_1($request, $answer); + if( $answer->request == 'success' ){ - echo "
"; + echo "
"; // bouton retour @@ -791,8 +793,10 @@ elseif( permission('master') || permission('admin') ){ // si enseignant et qu'un echo ''; + echo "
"; + }else - echo "
Aucun contrôle trouvé
"; + echo "
Aucun contrôle trouvé
";