Modification du select par partlist et filtrage PHP sur page/*.php plus efficace qu'au niveau de database et des managers
This commit is contained in:
parent
59d1e454ce
commit
fb37b5aeeb
|
@ -15,7 +15,7 @@ tr:hover > td > span.unstressed{ color: #ddd; }
|
||||||
|
|
||||||
span.stressed{ font-weight: bold; }
|
span.stressed{ font-weight: bold; }
|
||||||
|
|
||||||
|
thead.normal > tr > th{ font-weight: normal; }
|
||||||
|
|
||||||
/*************************/
|
/*************************/
|
||||||
/*** TITLE PERSONALISÉ ***/
|
/*** TITLE PERSONALISÉ ***/
|
||||||
|
@ -186,18 +186,18 @@ span.link:hover{ color: #000; }
|
||||||
/*********************/
|
/*********************/
|
||||||
select{
|
select{
|
||||||
/* position */
|
/* position */
|
||||||
margin: 2em 0;
|
margin: 2em;
|
||||||
padding: 0 1em;
|
padding: 0 1em;
|
||||||
|
|
||||||
/* border */
|
/* border */
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #2dcc70;
|
||||||
|
|
||||||
/* background */
|
/* background */
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
|
||||||
/* foreground */
|
/* foreground */
|
||||||
color: #233342;
|
color: #2dcc70;
|
||||||
|
|
||||||
/* select */
|
/* select */
|
||||||
-webkit-appearance:none;
|
-webkit-appearance:none;
|
||||||
|
@ -216,7 +216,7 @@ select > option{
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
|
|
||||||
/* foreground */
|
/* foreground */
|
||||||
color: #233342;
|
color: #555;
|
||||||
text-indent: 1em;
|
text-indent: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -269,3 +269,61 @@ tr:hover td select.active + .valider_action{ background-image: url(../src/valida
|
||||||
/* bouton validation */
|
/* bouton validation */
|
||||||
input.saisie_note.active + .valider_action{ display: inline-block; background-image: url(../src/validate.svg); }
|
input.saisie_note.active + .valider_action{ display: inline-block; background-image: url(../src/validate.svg); }
|
||||||
tr:hover td input.saisie_note.active + .valider_action{ background-image: url(../src/validate@hover.svg); }
|
tr:hover td input.saisie_note.active + .valider_action{ background-image: url(../src/validate@hover.svg); }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/******************************/
|
||||||
|
/*** SELECTIONS DES PARTIES ***/
|
||||||
|
/******************************/
|
||||||
|
#CONTAINER > section > .partlist{
|
||||||
|
/* position */
|
||||||
|
display: table;
|
||||||
|
margin: 2em;
|
||||||
|
|
||||||
|
/* border */
|
||||||
|
border-spacing: 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#CONTAINER > section > .partlist td{
|
||||||
|
/* position */
|
||||||
|
padding: .7em 2em;
|
||||||
|
|
||||||
|
/* border */
|
||||||
|
border: 1px solid #2dcc70;
|
||||||
|
border-right: 0;
|
||||||
|
|
||||||
|
/* background */
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
/* foreground */
|
||||||
|
color: #2dcc70;
|
||||||
|
|
||||||
|
/* extra */
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
/* animation */
|
||||||
|
transition: .2s ease-in-out;
|
||||||
|
-moz-transition: .2s ease-in-out;
|
||||||
|
-webkit-transition: .2s ease-in-out;
|
||||||
|
-ms-transition: .2s ease-in-out;
|
||||||
|
-o-transition: .2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @radius */
|
||||||
|
#CONTAINER > section > .partlist td:first-child{
|
||||||
|
border-radius: 5px 0 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @border + @radius */
|
||||||
|
#CONTAINER > section > .partlist td:last-child{
|
||||||
|
border-radius: 0 5px 5px 0;
|
||||||
|
border-right: 1px solid #2dcc70;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#CONTAINER > section > .partlist td.active{
|
||||||
|
background-color: #2dcc70;
|
||||||
|
color: #fff;
|
||||||
|
}
|
|
@ -22,23 +22,22 @@ pageManager.prototype = {
|
||||||
ajax: function(pLink, pHandler, pMethod, pForm){
|
ajax: function(pLink, pHandler, pMethod, pForm){
|
||||||
// on efface les requêtes qui sont terminées et on push une nouvelle
|
// on efface les requêtes qui sont terminées et on push une nouvelle
|
||||||
for( var i = 0 ; i < this.xhr.length ; i++ ){
|
for( var i = 0 ; i < this.xhr.length ; i++ ){
|
||||||
if( this.xhr[i].readyState == 4 ) // si terminée
|
// if( this.xhr[i].readyState == 4 ) // si terminée
|
||||||
this.xhr = this.xhr.slice(0,i-1).concat(this.xhr.slice(i,this.xhr.length-1)); // suppression entrée
|
this.xhr = this.xhr.slice(0,i-1).concat(this.xhr.slice(i,this.xhr.length-1)); // suppression entrée
|
||||||
}
|
}
|
||||||
|
|
||||||
this.xhr.push(true);
|
var index;
|
||||||
i = this.xhr.length-1;
|
|
||||||
|
|
||||||
if(window.XMLHttpRequest) // IE7+, Firefox, Chrome, Opera, Safari
|
if(window.XMLHttpRequest) // IE7+, Firefox, Chrome, Opera, Safari
|
||||||
this.xhr[i] = new XMLHttpRequest();
|
index = this.xhr.push( new XMLHttpRequest() ) -1;
|
||||||
else // IE5, IE6
|
else // IE5, IE6
|
||||||
this.xhr[i] = new ActiveXObject('Microsoft.XMLHttpRequest');
|
index = this.xhr.push( new ActiveXObject('Microsoft.XMLHttpRequest') ) -1;
|
||||||
|
|
||||||
var ptrPageManager = this;
|
var ptrPageManager = this;
|
||||||
this.xhr[i].onreadystatechange = function(){
|
this.xhr[index].onreadystatechange = function(){
|
||||||
if( ptrPageManager.xhr[i].readyState == 4 ) // si la requête est terminée
|
if( ptrPageManager.xhr[index].readyState == 4 ) // si la requête est terminée
|
||||||
if( [0,200].indexOf(ptrPageManager.xhr[i].status) > -1 ) // si fichier existe et reçu
|
if( [0,200].indexOf(ptrPageManager.xhr[index].status) > -1 ) // si fichier existe et reçu
|
||||||
pHandler(ptrPageManager.xhr[i].responseText);
|
pHandler(ptrPageManager.xhr[index].responseText);
|
||||||
else // si code d'erreur retourne null
|
else // si code d'erreur retourne null
|
||||||
pHandler();
|
pHandler();
|
||||||
}
|
}
|
||||||
|
@ -49,8 +48,8 @@ pageManager.prototype = {
|
||||||
// gestion du formulaire si la méthode est POST
|
// gestion du formulaire si la méthode est POST
|
||||||
var form = ( method == 'POST' && typeof pForm == 'object' && pForm instanceof FormData ) ? pForm : null;
|
var form = ( method == 'POST' && typeof pForm == 'object' && pForm instanceof FormData ) ? pForm : null;
|
||||||
|
|
||||||
this.xhr[i].open( method, pLink, true);
|
this.xhr[index].open( method, pLink, true );
|
||||||
this.xhr[i].send( form );
|
this.xhr[index].send( form );
|
||||||
},
|
},
|
||||||
/***************************************************** [APPLICATION] Ajax() ******************************************************/
|
/***************************************************** [APPLICATION] Ajax() ******************************************************/
|
||||||
// EXEMPLES DE FONCTIONS POUR pHandler //
|
// EXEMPLES DE FONCTIONS POUR pHandler //
|
||||||
|
|
|
@ -122,6 +122,27 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************/
|
||||||
|
/* informations relatives au dossier étudiant */
|
||||||
|
/**********************************************/
|
||||||
|
case 'studentcase': if( permission('teacher') ){
|
||||||
|
|
||||||
|
$areSetParam = isset($request->etudiant) && isset($request->controle) && isset($request->note); // les arguments existent
|
||||||
|
$typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings
|
||||||
|
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->controle) && is_numeric($request->note); // des bon types
|
||||||
|
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // nom bon format
|
||||||
|
|
||||||
|
if( $etudiantCheck ){ // si tout les paramètres sont bons
|
||||||
|
$answer->request = DataBase::getInstance()->saisieNote($request->etudiant, $request->controle, $request->note);
|
||||||
|
}else
|
||||||
|
$answer->request = 'param_error';
|
||||||
|
|
||||||
|
}else
|
||||||
|
$answer->request = 'permission_error';
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/****************************************************/
|
/****************************************************/
|
||||||
/* saisie d'une note pour un étudiant à un contrôle */
|
/* saisie d'une note pour un étudiant à un contrôle */
|
||||||
|
@ -145,6 +166,36 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* _ ____ ___ _____ _____ _ _ ____ _____ ____
|
||||||
|
/* / \ | _ \_ _| ___| ___| | | / ___|| ____| _ \
|
||||||
|
/* / _ \ | | | | || |_ | |_ | | | \___ \| _| | |_) |
|
||||||
|
/* / ___ \ | |_| | || _| | _| | |_| |___) | |___| _ <
|
||||||
|
/* /_/ \_\ |____/___|_| |_| \___/|____/|_____|_| \_\
|
||||||
|
/*
|
||||||
|
|
||||||
|
/****************************************************/
|
||||||
|
/* saisie d'une note pour un groupe à un contrôle */
|
||||||
|
/****************************************************/
|
||||||
|
case 'saisieNoteGroupe': if( permission('teacher') ){
|
||||||
|
|
||||||
|
$areSetParam = isset($request->etudiant) && isset($request->controle) && isset($request->note); // les arguments existent
|
||||||
|
$typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings
|
||||||
|
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->controle) && is_numeric($request->note); // des bon types
|
||||||
|
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // nom bon format
|
||||||
|
|
||||||
|
if( $etudiantCheck ){ // si tout les paramètres sont bons
|
||||||
|
$answer->request = DataBase::getInstance()->saisieNoteGroupe($request->etudiant, $request->controle, $request->note);
|
||||||
|
}else
|
||||||
|
$answer->request = 'param_error';
|
||||||
|
|
||||||
|
}else
|
||||||
|
$answer->request = 'permission_error';
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***********/
|
/***********/
|
||||||
/* DEFAULT */
|
/* DEFAULT */
|
||||||
/***********/
|
/***********/
|
||||||
|
|
|
@ -1,5 +1,37 @@
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************/
|
||||||
|
/* GESTION DE L'AFFINAGE PAR SEMESTRE */
|
||||||
|
/**************************************/
|
||||||
|
var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=UE]");
|
||||||
|
|
||||||
|
for( var i = 0 ; i < partList.length ; i++ ){
|
||||||
|
|
||||||
|
partList[i].addEventListener('click', function(e){
|
||||||
|
var tableauParent = e.target.parentNode.parentNode.parentNode;
|
||||||
|
|
||||||
|
if( tableauParent.tagName == 'TABLE' && tableauParent.getAttribute('name') == 'UE' && e.target.dataset.hasOwnProperty('value') ){
|
||||||
|
pageM.vars[1] = 'u:'+e.target.dataset.value;
|
||||||
|
|
||||||
|
// si on a '*' comme valeur, on l'enlève
|
||||||
|
if( /\*$/.test(pageM.vars[1]) )
|
||||||
|
pageM.vars.pop();
|
||||||
|
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***********************************************/
|
/***********************************************/
|
||||||
/* GESTION DE LE FILTRAGE POUR LES ENSEIGNANTS */
|
/* GESTION DE LE FILTRAGE POUR LES ENSEIGNANTS */
|
||||||
/***********************************************/
|
/***********************************************/
|
||||||
|
@ -12,21 +44,21 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') ){ /
|
||||||
|
|
||||||
/* LIENS POUR LES GROUPES ET CONTRÔLES */
|
/* LIENS POUR LES GROUPES ET CONTRÔLES */
|
||||||
if( e.target.className == 'link grp ctrl' && e.target.dataset.hasOwnProperty('grp') && e.target.dataset.hasOwnProperty('ctrl') ){
|
if( e.target.className == 'link grp ctrl' && e.target.dataset.hasOwnProperty('grp') && e.target.dataset.hasOwnProperty('ctrl') ){
|
||||||
pageM.vars[1] = e.target.dataset.ctrl;
|
pageM.vars[1] = 'c:'+e.target.dataset.ctrl;
|
||||||
pageM.vars[2] = e.target.dataset.grp;
|
pageM.vars[2] = 'g:'+e.target.dataset.grp;
|
||||||
reload();
|
reload();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LIENS POUR LES GROUPES */
|
/* LIENS POUR LES GROUPES */
|
||||||
if( e.target.className == 'link grp' && e.target.dataset.hasOwnProperty('grp') ){
|
if( e.target.className == 'link grp' && e.target.dataset.hasOwnProperty('grp') ){
|
||||||
pageM.vars[2] = e.target.dataset.grp;
|
pageM.vars[2] = 'g:'+e.target.dataset.grp;
|
||||||
reload();
|
reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LIENS POUR LES CONTRÔLES */
|
/* LIENS POUR LES CONTRÔLES */
|
||||||
if( e.target.className == 'link ctrl' && e.target.dataset.hasOwnProperty('ctrl') ){
|
if( e.target.className == 'link ctrl' && e.target.dataset.hasOwnProperty('ctrl') ){
|
||||||
pageM.vars[1] = e.target.dataset.ctrl;
|
pageM.vars[1] = 'c:'+e.target.dataset.ctrl;
|
||||||
|
|
||||||
if( pageM.vars[2] != null )
|
if( pageM.vars[2] != null )
|
||||||
pageM.vars.pop();
|
pageM.vars.pop();
|
||||||
|
@ -34,12 +66,27 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') ){ /
|
||||||
reload();
|
reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* LIENS POUR LES DOSSIER ETUDIANT */
|
||||||
|
if( e.target.className == 'link etu' && e.target.dataset.hasOwnProperty('etu') ){
|
||||||
|
pageM.vars[1] = 'e:'+e.target.dataset.etu;
|
||||||
|
|
||||||
|
if( pageM.vars[2] != null )
|
||||||
|
pageM.vars.pop();
|
||||||
|
|
||||||
|
pageM.vars[0] = 'studentcase'; // on redirige vers la page dossier étudiant
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* GESTION DE LA SAISIE DE NOTES */
|
/* GESTION DE LA SAISIE DE NOTES */
|
||||||
if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != null ){ // si c'set l'admin
|
if( document.querySelector('#CONTAINER section[name=controlesenseignants]') != null ){ // si c'set l'admin
|
||||||
|
|
||||||
|
|
|
@ -99,24 +99,46 @@ if( document.querySelector('#CONTAINER section[name=movestudents]') != null ){ /
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
/*** GESTION DES SELECT POUR AFFINER LES GROUPES ***/
|
/*** GESTION DES SELECT POUR AFFINER LES GROUPES ***/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
var selectList = document.querySelectorAll("#CONTAINER > section[name] > select");
|
var selectList = document.querySelectorAll("#CONTAINER > section[name] > select[name=groupe]");
|
||||||
|
var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=semestre]");
|
||||||
|
|
||||||
|
// GESTION DE L'AFFINAGE PAR SEMESTRE //
|
||||||
|
for( var i = 0 ; i < partList.length ; i++ ){
|
||||||
|
|
||||||
// GESTION DE LA PRISE EN COMPTE DES SELECT //
|
partList[i].addEventListener('click', function(e){
|
||||||
DOM.CONTAINER.addEventListener('change', function(e){
|
var tableauParent = e.target.parentNode.parentNode.parentNode;
|
||||||
if( e.target.tagName == 'SELECT' && ['semestre', 'groupe'].indexOf(e.target.getAttribute('name')) > -1 ){
|
|
||||||
if( e.target.getAttribute('name') == 'semestre' ){ // SI modifie le semestre
|
if( tableauParent.tagName == 'TABLE' && tableauParent.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('value') ){
|
||||||
pageM.vars[1] = e.target.value; // on selectionne semestre
|
pageM.vars[1] = 's:'+e.target.dataset.value;
|
||||||
pageM.vars[2] = '*'; // on désactive le groupe
|
|
||||||
}else{ // SINON
|
// si on a '*' comme valeur, on l'enlève
|
||||||
pageM.vars[1] = '*'; // on désactive le semestre
|
if( /\*$/.test(pageM.vars[1]) )
|
||||||
pageM.vars[2] = e.target.value; // on active le groupe
|
pageM.vars.pop();
|
||||||
}
|
|
||||||
|
|
||||||
reload();
|
reload();
|
||||||
// console.log(e.target.getAttribute('name')+' = '+e.target.value);
|
|
||||||
}
|
}
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// GESTION DE L'AFFINAGE PAR GROUPE //
|
||||||
|
for( var i = 0 ; i < selectList.length ; i++ ){
|
||||||
|
|
||||||
|
selectList[i].addEventListener('change', function(e){
|
||||||
|
|
||||||
|
if( e.target.tagName == 'SELECT' && e.target.getAttribute('name') == 'groupe' ){
|
||||||
|
pageM.vars[1] = 'g:'+e.target.value;
|
||||||
|
|
||||||
|
if( /\*$/.test(pageM.vars[1]) ) // si on a '*' comme valeur, on l'enlève
|
||||||
|
pageM.vars.pop();
|
||||||
|
|
||||||
|
reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
136
page/career.php
136
page/career.php
|
@ -9,23 +9,33 @@ require_once __ROOT__.'/manager/career.php';
|
||||||
|
|
||||||
/*** GESTION DES PARAMETRES OPTIONNELS ***/
|
/*** GESTION DES PARAMETRES OPTIONNELS ***/
|
||||||
|
|
||||||
$postVars = array(); // on récupère les variables post
|
// on initialise les paramètres optionnels
|
||||||
|
|
||||||
foreach($_POST as $k=>$v)
|
|
||||||
array_push($postVars, $k);
|
|
||||||
|
|
||||||
/* GESTION CONTRÔLE OPTIONNEL */
|
|
||||||
if( isset($postVars[1]) && is_int($postVars[1]) )
|
|
||||||
$controleOpt = (String) $postVars[1];
|
|
||||||
else
|
|
||||||
$controleOpt = null;
|
$controleOpt = null;
|
||||||
|
|
||||||
|
|
||||||
/* GESTION GROUPE OPTIONNEL */
|
|
||||||
if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 )
|
|
||||||
$groupeOpt = $postVars[2];
|
|
||||||
else
|
|
||||||
$groupeOpt = null;
|
$groupeOpt = null;
|
||||||
|
$etudiantOpt = null;
|
||||||
|
$ueOpt = null;
|
||||||
|
|
||||||
|
// on cherche dans toutes les variables _get si on trouve des paramètres
|
||||||
|
foreach($_POST as $k=>$v){
|
||||||
|
|
||||||
|
if( preg_match('/^g:(.+)$/', $k, $m) ) // g:nomGroupe
|
||||||
|
$groupeOpt = $m[1];
|
||||||
|
|
||||||
|
if( preg_match('/^c:(.+)$/', $k, $m) ) // s:nomSemestre
|
||||||
|
$controleOpt = $m[1];
|
||||||
|
|
||||||
|
if( preg_match('/^e:(.+)$/', $k, $m) ) // s:nomSemestre
|
||||||
|
$etudiantOpt = $m[1];
|
||||||
|
|
||||||
|
if( preg_match('/^u:(.+)$/', $k, $m) ) // s:nomSemestre
|
||||||
|
$ueOpt = $m[1];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$controleOpt = ($controleOpt == null || $controleOpt == '*') ? null : $controleOpt;
|
||||||
|
$groupeOpt = ($groupeOpt == null || $groupeOpt == '*') ? null : $groupeOpt;
|
||||||
|
$etudiantOpt = ($etudiantOpt == null || $etudiantOpt == '*') ? null : $etudiantOpt;
|
||||||
|
$ueOpt = ($ueOpt == null || $ueOpt == '*') ? null : $ueOpt;
|
||||||
|
|
||||||
/****************************************
|
/****************************************
|
||||||
* *
|
* *
|
||||||
|
@ -146,21 +156,32 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
echo "<section name='controlesenseignants' data-title='Contrôles' class='basic'>";
|
echo "<section name='controlesenseignants' data-title='Contrôles' class='basic'>";
|
||||||
|
|
||||||
|
|
||||||
|
echo "<table class='partlist' name='UE'><tbody><tr>";
|
||||||
|
|
||||||
|
if( $ueOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
|
||||||
|
else echo "<td data-value='*'>Tous</td>";
|
||||||
|
|
||||||
|
foreach($answer->UEs as $UE)
|
||||||
|
if( $UE['nom'] == $ueOpt ) // si c'est le semestre séléctionné
|
||||||
|
echo "<td data-value='".$UE['nom']."' class='active'>".$UE['nom'].'</td>';
|
||||||
|
else // sinon on affiche normalement
|
||||||
|
echo "<td data-value='".$UE['nom']."'>".$UE['nom'].'</td>';
|
||||||
|
echo "</tr></tbody></table>";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if( count($answer->UEs) > 0 ){ // si au moins un UE
|
if( count($answer->UEs) > 0 ){ // si au moins un UE
|
||||||
|
|
||||||
foreach($answer->UEs as $UE){ // pour chaque UE
|
foreach($answer->UEs as $UE){ // pour chaque UE
|
||||||
echo "<table class='basic col4'>";
|
|
||||||
echo "<thead>";
|
|
||||||
echo '<tr>';
|
|
||||||
echo "<th colspan=5 style='font-size:1.5em; text-align:center;'>".$UE['nom'].' - '.$UE['libelle'].'</th>';
|
|
||||||
echo '</tr>';
|
|
||||||
|
|
||||||
echo '</thead></table>';
|
if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // si on affiche l'UE en fonction du paramètre passé par l'URL
|
||||||
|
|
||||||
if( count($UE['modules']) > 0 ){ // s'il y a au moins un module
|
if( count($UE['modules']) > 0 ){ // s'il y a au moins un module
|
||||||
|
|
||||||
foreach($UE['modules'] as $module){ // pour chaque module
|
foreach($UE['modules'] as $module){ // pour chaque module
|
||||||
echo "<table class='basic col4'><thead>";
|
echo "<table class='basic col4'><thead class=normal>";
|
||||||
echo '<tr><th colspan=4>'.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>';
|
echo '<tr><th colspan=4><strong>'.$UE['nom'].'</strong> - '.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>';
|
||||||
|
|
||||||
if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module
|
if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module
|
||||||
|
|
||||||
|
@ -205,6 +226,8 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
|
||||||
|
|
||||||
}
|
}
|
||||||
echo '</table>';
|
echo '</table>';
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -338,6 +361,73 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************************/
|
||||||
|
/*** LES DOSSIERS ETUDIANTS (version enseignant) ***/
|
||||||
|
/***************************************************/
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* [1] Toutes les notes d'un enseignant
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
if( permission('teacher') && $etudiantOpt != null ){
|
||||||
|
|
||||||
|
$request = new stdClass(); $answer = new stdClass();
|
||||||
|
|
||||||
|
$request->level_1 = 'getNotesEtudiant';
|
||||||
|
$request->etudiant = $etudiantOpt;
|
||||||
|
$request->semestre = $_SESSION['semestre'];
|
||||||
|
$request->annee = $_SESSION['annee'];
|
||||||
|
|
||||||
|
career_switch_level_1($request, $answer);
|
||||||
|
|
||||||
|
var_dump( $answer );
|
||||||
|
|
||||||
|
if( $answer->request == 'success' ){ // si on a bien récupéré les UE/notes
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
echo "<section name='studentcase' data-title='Dossier étudiant' class='basic'>";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
foreach($answer->UEs as $UE){ // pour chaque UE
|
||||||
|
echo "<table class='basic col4'>";
|
||||||
|
|
||||||
|
echo "<thead><tr><th colspan=5 style='font-size:1.5em; text-align:center;'>".$UE['nom'].' - '.$UE['libelle'].'</th></tr>';
|
||||||
|
|
||||||
|
echo '</thead></table>';
|
||||||
|
foreach($UE['modules'] as $module){ // pour chaque module
|
||||||
|
echo '<table class=basic><thead>';
|
||||||
|
echo '<tr><th colspan=5>'.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>';
|
||||||
|
|
||||||
|
foreach($module['controles'] as $controle){ // pour chaque contrôle
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td><span class=link>'.$controle['intitule'].'</span></td>';
|
||||||
|
|
||||||
|
if( count($controle['notes']) == 0 ) // si aucune note pour ce controle on affiche 'Pas de note'
|
||||||
|
echo '<td><span class=unstressed>Pas de note</span></td>';
|
||||||
|
else // si une note, alors on l'affiche
|
||||||
|
echo '<td>'.number_format($controle['notes'][0]['valeur'], 2).' <span class=unstressed>/</span> '.$controle['base'].'</td>';
|
||||||
|
|
||||||
|
echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
|
||||||
|
echo '<td>Coefficient '.number_format($controle['coefficient'], 2).'</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
}
|
||||||
|
echo '</tbody>';
|
||||||
|
}
|
||||||
|
echo '</table>';
|
||||||
|
|
||||||
|
}
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
echo '</section>';
|
||||||
|
}else
|
||||||
|
echo "<section name='studentcase' data-title='Dossier étudiant' class='basic'><table class=basic><tbody><tr><td>Aucune note trouvée</td></tr></tbody></table></section>";
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,25 +18,22 @@ require_once __ROOT__.'/manager/groups.php';
|
||||||
|
|
||||||
/*** GESTION DES PARAMETRES OPTIONNELS ***/
|
/*** GESTION DES PARAMETRES OPTIONNELS ***/
|
||||||
|
|
||||||
$postVars = array(); // on récupère les variables post
|
// on initialise les paramètres optionnels
|
||||||
|
|
||||||
foreach($_POST as $k=>$v)
|
|
||||||
array_push($postVars, $k);
|
|
||||||
|
|
||||||
|
|
||||||
/* GESTION SEMESTRE OPTIONNEL */
|
|
||||||
if( isset($postVars[1]) && preg_match('/^S[0-9]{1}$/', $postVars[1]) )
|
|
||||||
$semestreOpt = $postVars[1];
|
|
||||||
else
|
|
||||||
$semestreOpt = null;
|
$semestreOpt = null;
|
||||||
|
|
||||||
|
|
||||||
/* GESTION GROUPES OPTIONNEL */
|
|
||||||
if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 )
|
|
||||||
$groupeOpt = $postVars[2];
|
|
||||||
else
|
|
||||||
$groupeOpt = null;
|
$groupeOpt = null;
|
||||||
|
|
||||||
|
// on cherche dans toutes les variables _get si on trouve des paramètres
|
||||||
|
foreach($_POST as $k=>$v){
|
||||||
|
|
||||||
|
if( preg_match('/^g:(.+)$/', $k, $m) ) // g:nomGroupe
|
||||||
|
$groupeOpt = $m[1];
|
||||||
|
|
||||||
|
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
|
||||||
|
$semestreOpt = $m[1];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************/
|
/************************/
|
||||||
/*** TOUS LES GROUPES ***/
|
/*** TOUS LES GROUPES ***/
|
||||||
|
@ -309,35 +306,50 @@ if( permission('student') ){ // si l'utilisateur est connecté et que c'est un
|
||||||
if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un élève
|
if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un élève
|
||||||
|
|
||||||
$request = new stdClass(); $answer = new stdClass();
|
$request = new stdClass(); $answer = new stdClass();
|
||||||
$request->level_1 = 'grouplistForTeacher'; /******************************************************************************************************** A FAIRE **/
|
$requestPourListeGroupes = new stdClass();$answerPourListeGroupes = new stdClass();
|
||||||
|
|
||||||
|
|
||||||
|
$request->level_1 = 'grouplistForTeacher';
|
||||||
$request->enseignant = $_SESSION['identifiant'];
|
$request->enseignant = $_SESSION['identifiant'];
|
||||||
$request->annee = $_SESSION['annee'];
|
$request->annee = $_SESSION['annee'];
|
||||||
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
|
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
|
||||||
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
|
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
|
||||||
|
|
||||||
groups_switch_level_1($request, $answer);
|
$requestPourListeGroupes->level_1 = 'grouplistForTeacher';
|
||||||
|
$requestPourListeGroupes->enseignant = $_SESSION['identifiant'];
|
||||||
|
$requestPourListeGroupes->annee = $_SESSION['annee'];
|
||||||
|
|
||||||
if( $answer->request == 'success' && count($answer->grouplist) > 0 ){ // si on a bien récupéré les membres du groupe
|
groups_switch_level_1($request, $answer);
|
||||||
|
groups_switch_level_1($requestPourListeGroupes, $answerPourListeGroupes);
|
||||||
|
|
||||||
|
if( $answer->request == 'success' && $answerPourListeGroupes->request == 'success' && count($answerPourListeGroupes->grouplist) > 0 ){ // si on a bien récupéré les membres du groupe
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'>";
|
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'>";
|
||||||
|
|
||||||
/* select pour SEMESTRES */
|
/* select pour SEMESTRES */
|
||||||
$lastSemestre = null;
|
$lastSemestre = null;
|
||||||
|
|
||||||
echo "<select name='semestre'>";
|
|
||||||
echo "<option value='*'>Tous les semestres</option>";
|
echo "<table class='partlist' name='semestre'><tbody><tr>";
|
||||||
foreach($answer->grouplist as $group){
|
|
||||||
|
if( $semestreOpt != null ) // si aucun semestre n'est spécifié, on selectionne "Tous" par défaut
|
||||||
|
echo "<td data-value='*'>Tous</td>";
|
||||||
|
else
|
||||||
|
echo "<td data-value='*' class='active'>Tous</td>";
|
||||||
|
|
||||||
|
|
||||||
|
foreach($answerPourListeGroupes->grouplist as $group){
|
||||||
if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
|
if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
|
||||||
|
|
||||||
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
|
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||||
echo "<option value='".$group['semestre']."' selected>".$group['semestre'].'</option>';
|
echo "<td data-value='".$group['semestre']."' class='active'>".$group['semestre'].'</td>';
|
||||||
else // sinon on affiche normalement
|
else // sinon on affiche normalement
|
||||||
echo "<option value='".$group['semestre']."'>".$group['semestre'].'</option>';
|
echo "<td data-value='".$group['semestre']."'>".$group['semestre'].'</td>';
|
||||||
|
|
||||||
$lastSemestre = $group['semestre'];
|
$lastSemestre = $group['semestre'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo "<select>";
|
echo "</tr></tbody></table>";
|
||||||
|
|
||||||
/* select pour GROUPES */
|
/* select pour GROUPES */
|
||||||
$lastGroupe = null;
|
$lastGroupe = null;
|
||||||
|
@ -444,20 +456,26 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
|
||||||
/* select pour SEMESTRES */
|
/* select pour SEMESTRES */
|
||||||
$lastSemestre = null;
|
$lastSemestre = null;
|
||||||
|
|
||||||
echo "<select name='semestre'>";
|
echo "<table class='partlist' name='semestre'><tbody><tr>";
|
||||||
echo "<option value='*'>Tous les semestres</option>";
|
|
||||||
foreach($answer->grouplist as $group){
|
if( $semestreOpt != null && $semestreOpt != '*') // si aucun semestre n'est spécifié, on selectionne "Tous" par défaut
|
||||||
|
echo "<td data-value='*'>Tous</td>";
|
||||||
|
else
|
||||||
|
echo "<td data-value='*' class='active'>Tous</td>";
|
||||||
|
|
||||||
|
|
||||||
|
foreach($answerPourListeGroupes->grouplist as $group){
|
||||||
if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
|
if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
|
||||||
|
|
||||||
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
|
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||||
echo "<option value='".$group['semestre']."' selected>".$group['semestre'].'</option>';
|
echo "<td data-value='".$group['semestre']."' class='active'>".$group['semestre'].'</td>';
|
||||||
else // sinon on affiche normalement
|
else // sinon on affiche normalement
|
||||||
echo "<option value='".$group['semestre']."'>".$group['semestre'].'</option>';
|
echo "<td data-value='".$group['semestre']."'>".$group['semestre'].'</td>';
|
||||||
|
|
||||||
$lastSemestre = $group['semestre'];
|
$lastSemestre = $group['semestre'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
echo "<select>";
|
echo "</tr></tbody></table>";
|
||||||
|
|
||||||
/* select pour GROUPES */
|
/* select pour GROUPES */
|
||||||
$lastGroupe = null;
|
$lastGroupe = null;
|
||||||
|
|
Loading…
Reference in New Issue