Page admin@touscontroles pour 'admin' et 'master'

This commit is contained in:
xdrm-brackets 2015-11-26 19:06:27 +01:00
parent c89c8ddfa4
commit 0172d6b010
5 changed files with 80 additions and 27 deletions

View File

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

View File

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

View File

@ -14,7 +14,7 @@ class controleRepo extends DBAccess{
*
* @controleUID<int> l'UID du controle duquel on veut les infos
*
* @enseignant<String> ***OPTIONNEL*** l'UID de l'ensseignant
* @enseignant<String> ***OPTIONNEL*** l'UID de l'enseignant
*
*
* @return controle<Array> tableau associatif contenant tout les champs de la BDD pour ce controle

View File

@ -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 <INPUT> */
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 ){

View File

@ -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 "<section name='controlesenseignants' data-title='Mes contrôles' class='basic'>";
echo "<section name='controlesenseignants' data-controles data-title='Mes contrôles' class='basic'>";
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
@ -319,7 +319,7 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
////////////////////////////////////////////////////////////////////////////////
echo '</section>';
}else
echo "<section name='controlesenseignants' data-title='Mes contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";
echo "<section name='controlesenseignants' data-controles data-title='Mes contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";
@ -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 "<section name='controlesenseignants' data-title='Mes contrôles' class='basic'>";
echo "<section name='controlesenseignants' data-controles data-title='Mes contrôles' class='basic'>";
// bouton retour
@ -451,8 +450,10 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif
echo '</tbody></table>';
echo "</section>";
}else
echo "<section name='controlesenseignants' data-title='Mes contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";
echo "<section name='controlesenseignants' data-controles data-title='Mes contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";
@ -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 "<section name='allcontroles' data-title='Tous les contrôles' class='basic'>";
echo "<section name='allcontroles' data-controles data-title='Tous les contrôles' class='basic'>";
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
@ -660,7 +661,7 @@ if( (permission('master') || permission('admin')) && $controleOpt == null ){ //
////////////////////////////////////////////////////////////////////////////////
echo '</section>';
}else
echo "<section name='allcontroles' data-title='Tous les contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";
echo "<section name='allcontroles' data-controles data-title='Tous les contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";
@ -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 "<section name='allcontroles' data-title='Tous les contrôles' class='basic'>";
echo "<section name='allcontroles' data-controles data-title='Tous les contrôles' class='basic'>";
// bouton retour
@ -791,8 +793,10 @@ elseif( permission('master') || permission('admin') ){ // si enseignant et qu'un
echo '</tbody></table>';
echo "</section>";
}else
echo "<section name='allcontroles' data-title='Tous les contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";
echo "<section name='allcontroles' data-controles data-title='Tous les contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";