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; }
|
||||
|
||||
|
||||
thead.normal > tr > th{ font-weight: normal; }
|
||||
|
||||
/*************************/
|
||||
/*** TITLE PERSONALISÉ ***/
|
||||
|
@ -186,18 +186,18 @@ span.link:hover{ color: #000; }
|
|||
/*********************/
|
||||
select{
|
||||
/* position */
|
||||
margin: 2em 0;
|
||||
margin: 2em;
|
||||
padding: 0 1em;
|
||||
|
||||
/* border */
|
||||
border-radius: 5px;
|
||||
border: 1px solid #ddd;
|
||||
border: 1px solid #2dcc70;
|
||||
|
||||
/* background */
|
||||
background-color: #fff;
|
||||
|
||||
/* foreground */
|
||||
color: #233342;
|
||||
color: #2dcc70;
|
||||
|
||||
/* select */
|
||||
-webkit-appearance:none;
|
||||
|
@ -216,7 +216,7 @@ select > option{
|
|||
background-color: #fff;
|
||||
|
||||
/* foreground */
|
||||
color: #233342;
|
||||
color: #555;
|
||||
text-indent: 1em;
|
||||
}
|
||||
|
||||
|
@ -269,3 +269,61 @@ tr:hover td select.active + .valider_action{ background-image: url(../src/valida
|
|||
/* bouton validation */
|
||||
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); }
|
||||
|
||||
|
||||
|
||||
|
||||
/******************************/
|
||||
/*** 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){
|
||||
// on efface les requêtes qui sont terminées et on push une nouvelle
|
||||
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.push(true);
|
||||
i = this.xhr.length-1;
|
||||
var index;
|
||||
|
||||
if(window.XMLHttpRequest) // IE7+, Firefox, Chrome, Opera, Safari
|
||||
this.xhr[i] = new XMLHttpRequest();
|
||||
index = this.xhr.push( new XMLHttpRequest() ) -1;
|
||||
else // IE5, IE6
|
||||
this.xhr[i] = new ActiveXObject('Microsoft.XMLHttpRequest');
|
||||
index = this.xhr.push( new ActiveXObject('Microsoft.XMLHttpRequest') ) -1;
|
||||
|
||||
var ptrPageManager = this;
|
||||
this.xhr[i].onreadystatechange = function(){
|
||||
if( ptrPageManager.xhr[i].readyState == 4 ) // si la requête est terminée
|
||||
if( [0,200].indexOf(ptrPageManager.xhr[i].status) > -1 ) // si fichier existe et reçu
|
||||
pHandler(ptrPageManager.xhr[i].responseText);
|
||||
this.xhr[index].onreadystatechange = function(){
|
||||
if( ptrPageManager.xhr[index].readyState == 4 ) // si la requête est terminée
|
||||
if( [0,200].indexOf(ptrPageManager.xhr[index].status) > -1 ) // si fichier existe et reçu
|
||||
pHandler(ptrPageManager.xhr[index].responseText);
|
||||
else // si code d'erreur retourne null
|
||||
pHandler();
|
||||
}
|
||||
|
@ -49,8 +48,8 @@ pageManager.prototype = {
|
|||
// gestion du formulaire si la méthode est POST
|
||||
var form = ( method == 'POST' && typeof pForm == 'object' && pForm instanceof FormData ) ? pForm : null;
|
||||
|
||||
this.xhr[i].open( method, pLink, true);
|
||||
this.xhr[i].send( form );
|
||||
this.xhr[index].open( method, pLink, true );
|
||||
this.xhr[index].send( form );
|
||||
},
|
||||
/***************************************************** [APPLICATION] Ajax() ******************************************************/
|
||||
// EXEMPLES DE FONCTIONS POUR pHandler //
|
||||
|
|
|
@ -122,6 +122,27 @@ require_once __ROOT__.'/manager/database.php';
|
|||
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 */
|
||||
|
@ -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 */
|
||||
/***********/
|
||||
|
|
|
@ -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 */
|
||||
/***********************************************/
|
||||
|
@ -12,21 +44,21 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') ){ /
|
|||
|
||||
/* LIENS POUR LES GROUPES ET CONTRÔLES */
|
||||
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[2] = e.target.dataset.grp;
|
||||
pageM.vars[1] = 'c:'+e.target.dataset.ctrl;
|
||||
pageM.vars[2] = 'g:'+e.target.dataset.grp;
|
||||
reload();
|
||||
|
||||
}
|
||||
|
||||
/* LIENS POUR LES GROUPES */
|
||||
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();
|
||||
}
|
||||
|
||||
/* LIENS POUR LES CONTRÔLES */
|
||||
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 )
|
||||
pageM.vars.pop();
|
||||
|
@ -34,12 +66,27 @@ if( document.querySelector('#CONTAINER section[name=controlesenseignants]') ){ /
|
|||
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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* GESTION DE LA SAISIE DE NOTES */
|
||||
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 ***/
|
||||
/***************************************************/
|
||||
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++ ){
|
||||
|
||||
partList[i].addEventListener('click', function(e){
|
||||
var tableauParent = e.target.parentNode.parentNode.parentNode;
|
||||
|
||||
if( tableauParent.tagName == 'TABLE' && tableauParent.getAttribute('name') == 'semestre' && e.target.dataset.hasOwnProperty('value') ){
|
||||
pageM.vars[1] = 's:'+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 LA PRISE EN COMPTE DES SELECT //
|
||||
DOM.CONTAINER.addEventListener('change', function(e){
|
||||
if( e.target.tagName == 'SELECT' && ['semestre', 'groupe'].indexOf(e.target.getAttribute('name')) > -1 ){
|
||||
if( e.target.getAttribute('name') == 'semestre' ){ // SI modifie le semestre
|
||||
pageM.vars[1] = e.target.value; // on selectionne semestre
|
||||
pageM.vars[2] = '*'; // on désactive le groupe
|
||||
}else{ // SINON
|
||||
pageM.vars[1] = '*'; // on désactive le semestre
|
||||
pageM.vars[2] = e.target.value; // on active le groupe
|
||||
// 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();
|
||||
}
|
||||
|
||||
reload();
|
||||
// console.log(e.target.getAttribute('name')+' = '+e.target.value);
|
||||
}
|
||||
}, false);
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
198
page/career.php
198
page/career.php
|
@ -9,23 +9,33 @@ require_once __ROOT__.'/manager/career.php';
|
|||
|
||||
/*** GESTION DES PARAMETRES OPTIONNELS ***/
|
||||
|
||||
$postVars = array(); // on récupère les variables post
|
||||
// on initialise les paramètres optionnels
|
||||
$controleOpt = null;
|
||||
$groupeOpt = null;
|
||||
$etudiantOpt = null;
|
||||
$ueOpt = null;
|
||||
|
||||
foreach($_POST as $k=>$v)
|
||||
array_push($postVars, $k);
|
||||
// on cherche dans toutes les variables _get si on trouve des paramètres
|
||||
foreach($_POST as $k=>$v){
|
||||
|
||||
/* GESTION CONTRÔLE OPTIONNEL */
|
||||
if( isset($postVars[1]) && is_int($postVars[1]) )
|
||||
$controleOpt = (String) $postVars[1];
|
||||
else
|
||||
$controleOpt = null;
|
||||
if( preg_match('/^g:(.+)$/', $k, $m) ) // g:nomGroupe
|
||||
$groupeOpt = $m[1];
|
||||
|
||||
if( preg_match('/^c:(.+)$/', $k, $m) ) // s:nomSemestre
|
||||
$controleOpt = $m[1];
|
||||
|
||||
/* GESTION GROUPE OPTIONNEL */
|
||||
if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 )
|
||||
$groupeOpt = $postVars[2];
|
||||
else
|
||||
$groupeOpt = null;
|
||||
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,65 +156,78 @@ if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant e
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
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
|
||||
|
||||
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( count($UE['modules']) > 0 ){ // s'il y a au moins un module
|
||||
|
||||
foreach($UE['modules'] as $module){ // pour chaque module
|
||||
echo "<table class='basic col4'><thead>";
|
||||
echo '<tr><th colspan=4>'.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>';
|
||||
if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // si on affiche l'UE en fonction du paramètre passé par l'URL
|
||||
|
||||
if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module
|
||||
if( count($UE['modules']) > 0 ){ // s'il y a au moins un module
|
||||
|
||||
foreach($module['controles'] as $controle){ // pour chaque contrôle
|
||||
echo '<tr>';
|
||||
echo "<td><span class='link ctrl' data-ctrl='".$controle['id']."'>".$controle['intitule']."</span></td>";
|
||||
|
||||
echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
|
||||
foreach($UE['modules'] as $module){ // pour chaque module
|
||||
echo "<table class='basic col4'><thead class=normal>";
|
||||
echo '<tr><th colspan=4><strong>'.$UE['nom'].'</strong> - '.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>';
|
||||
|
||||
if( count($controle['notes']) == 0 ) // si il y a au moins une note pour ce contrôle
|
||||
echo '<td><span class=unstressed>Pas noté</span></td>';
|
||||
else
|
||||
echo '<td><span class=unstressed>Moyenne de</span> '.number_format($controle['moyenne'], 2).' <span class=unstressed>/</span> '.$controle['base'].'</td>';
|
||||
// echo '<td>'.number_format($controle['moyenne'], 2).'</td>';
|
||||
if( count($module['controles']) > 0 ){ // s'il y a au moins un contrôle pour ce module
|
||||
|
||||
foreach($module['controles'] as $controle){ // pour chaque contrôle
|
||||
echo '<tr>';
|
||||
echo "<td><span class='link ctrl' data-ctrl='".$controle['id']."'>".$controle['intitule']."</span></td>";
|
||||
|
||||
echo '<td><span class=unstressed>Coefficient</span> '.number_format($controle['coefficient'], 2).'</td>';
|
||||
echo '</tr>';
|
||||
|
||||
echo "<tr class='noborder transparentbg'><td></td><td colspan=3><table class='basic col4'><tbody>";
|
||||
echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
|
||||
|
||||
foreach($controle['notes'] as $note){ // on affiche la liste des élèves avec leurs notes
|
||||
echo "<tr>";
|
||||
echo "<td><span class='link grp ctrl' data-grp='".$note['groupe']."' data-ctrl='".$controle['id']."'>".$note['groupe']."</span></td>";
|
||||
if( $note['nb_notes'] == 1 )
|
||||
echo "<td>".$note['nb_notes']." <span class=unstressed>note</span></td>";
|
||||
if( count($controle['notes']) == 0 ) // si il y a au moins une note pour ce contrôle
|
||||
echo '<td><span class=unstressed>Pas noté</span></td>';
|
||||
else
|
||||
echo "<td>".$note['nb_notes']." <span class=unstressed>notes</span></td>";
|
||||
echo '<td><span class=unstressed>Moyenne de</span> '.number_format($controle['moyenne'], 2).' <span class=unstressed>/</span> '.$controle['base'].'</td>';
|
||||
// echo '<td>'.number_format($controle['moyenne'], 2).'</td>';
|
||||
|
||||
echo '<td><span class=unstressed>Coefficient</span> '.number_format($controle['coefficient'], 2).'</td>';
|
||||
echo '</tr>';
|
||||
|
||||
echo "<tr class='noborder transparentbg'><td></td><td colspan=3><table class='basic col4'><tbody>";
|
||||
|
||||
echo "<td><span class=unstressed>Allant de</span> ".$note['min']." <span class=unstressed>à</span> ".$note['max']."</td>";
|
||||
echo "<td><span class=unstressed>Moyenne de </span>".number_format($note['moyenne'], 2)." <span class=unstressed>/</span> ".$controle['base']."</td>";
|
||||
echo "</tr>";
|
||||
foreach($controle['notes'] as $note){ // on affiche la liste des élèves avec leurs notes
|
||||
echo "<tr>";
|
||||
echo "<td><span class='link grp ctrl' data-grp='".$note['groupe']."' data-ctrl='".$controle['id']."'>".$note['groupe']."</span></td>";
|
||||
if( $note['nb_notes'] == 1 )
|
||||
echo "<td>".$note['nb_notes']." <span class=unstressed>note</span></td>";
|
||||
else
|
||||
echo "<td>".$note['nb_notes']." <span class=unstressed>notes</span></td>";
|
||||
|
||||
echo "<td><span class=unstressed>Allant de</span> ".$note['min']." <span class=unstressed>à</span> ".$note['max']."</td>";
|
||||
echo "<td><span class=unstressed>Moyenne de </span>".number_format($note['moyenne'], 2)." <span class=unstressed>/</span> ".$controle['base']."</td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
|
||||
echo '</tbody></table></td></tr>';
|
||||
}
|
||||
|
||||
echo '</tbody></table></td></tr>';
|
||||
}
|
||||
}else // si aucun contrôle pour ce module
|
||||
echo "<tr><td colspan=5>Aucun contrôle trouvé</td></tr>";
|
||||
|
||||
}else // si aucun contrôle pour ce module
|
||||
echo "<tr><td colspan=5>Aucun contrôle trouvé</td></tr>";
|
||||
echo '</tbody>';
|
||||
}
|
||||
|
||||
echo '</tbody>';
|
||||
}
|
||||
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>";
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
212
page/groups.php
212
page/groups.php
|
@ -18,24 +18,21 @@ require_once __ROOT__.'/manager/groups.php';
|
|||
|
||||
/*** GESTION DES PARAMETRES OPTIONNELS ***/
|
||||
|
||||
$postVars = array(); // on récupère les variables post
|
||||
// on initialise les paramètres optionnels
|
||||
$semestreOpt = null;
|
||||
$groupeOpt = null;
|
||||
|
||||
foreach($_POST as $k=>$v)
|
||||
array_push($postVars, $k);
|
||||
// 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];
|
||||
|
||||
/* GESTION SEMESTRE OPTIONNEL */
|
||||
if( isset($postVars[1]) && preg_match('/^S[0-9]{1}$/', $postVars[1]) )
|
||||
$semestreOpt = $postVars[1];
|
||||
else
|
||||
$semestreOpt = null;
|
||||
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
|
||||
$semestreOpt = $m[1];
|
||||
|
||||
}
|
||||
|
||||
/* GESTION GROUPES OPTIONNEL */
|
||||
if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 )
|
||||
$groupeOpt = $postVars[2];
|
||||
else
|
||||
$groupeOpt = null;
|
||||
|
||||
|
||||
/************************/
|
||||
|
@ -308,94 +305,109 @@ 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
|
||||
|
||||
$request = new stdClass(); $answer = new stdClass();
|
||||
$request->level_1 = 'grouplistForTeacher'; /******************************************************************************************************** A FAIRE **/
|
||||
$request->enseignant = $_SESSION['identifiant'];
|
||||
$request->annee = $_SESSION['annee'];
|
||||
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
|
||||
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
|
||||
$request = new stdClass(); $answer = new stdClass();
|
||||
$requestPourListeGroupes = new stdClass();$answerPourListeGroupes = new stdClass();
|
||||
|
||||
groups_switch_level_1($request, $answer);
|
||||
|
||||
if( $answer->request == 'success' && count($answer->grouplist) > 0 ){ // si on a bien récupéré les membres du groupe
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'>";
|
||||
$request->level_1 = 'grouplistForTeacher';
|
||||
$request->enseignant = $_SESSION['identifiant'];
|
||||
$request->annee = $_SESSION['annee'];
|
||||
if ( $semestreOpt != null ) $request->semestre = $semestreOpt;
|
||||
elseif( $groupeOpt != null ) $request->groupe = $groupeOpt;
|
||||
|
||||
$requestPourListeGroupes->level_1 = 'grouplistForTeacher';
|
||||
$requestPourListeGroupes->enseignant = $_SESSION['identifiant'];
|
||||
$requestPourListeGroupes->annee = $_SESSION['annee'];
|
||||
|
||||
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'>";
|
||||
|
||||
/* select pour SEMESTRES */
|
||||
$lastSemestre = null;
|
||||
|
||||
|
||||
echo "<table class='partlist' name='semestre'><tbody><tr>";
|
||||
|
||||
/* select pour SEMESTRES */
|
||||
$lastSemestre = null;
|
||||
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>";
|
||||
|
||||
|
||||
echo "<select name='semestre'>";
|
||||
echo "<option value='*'>Tous les semestres</option>";
|
||||
foreach($answer->grouplist as $group){
|
||||
if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
|
||||
|
||||
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||
echo "<option value='".$group['semestre']."' selected>".$group['semestre'].'</option>';
|
||||
else // sinon on affiche normalement
|
||||
echo "<option value='".$group['semestre']."'>".$group['semestre'].'</option>';
|
||||
foreach($answerPourListeGroupes->grouplist as $group){
|
||||
if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
|
||||
|
||||
if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
|
||||
echo "<td data-value='".$group['semestre']."' class='active'>".$group['semestre'].'</td>';
|
||||
else // sinon on affiche normalement
|
||||
echo "<td data-value='".$group['semestre']."'>".$group['semestre'].'</td>';
|
||||
|
||||
$lastSemestre = $group['semestre'];
|
||||
$lastSemestre = $group['semestre'];
|
||||
}
|
||||
}
|
||||
echo "</tr></tbody></table>";
|
||||
|
||||
/* select pour GROUPES */
|
||||
$lastGroupe = null;
|
||||
|
||||
echo "<select name='groupe'>";
|
||||
echo "<option value='*'>Tous les groupes</option>";
|
||||
foreach($answer->grouplist as $group){
|
||||
if( $lastGroupe == null || $lastGroupe != $group->nom ){
|
||||
|
||||
if( $group['nom'] == $groupeOpt ) // si c'est le groupe séléctionné
|
||||
echo "<option value='".$group['nom']."' selected>".$group['nom'].'</option>';
|
||||
else
|
||||
echo "<option value='".$group['nom']."'>".$group['nom'].'</option>';
|
||||
|
||||
$lastGroupe = $group['nom'];
|
||||
}
|
||||
}
|
||||
echo "<select>";
|
||||
|
||||
echo "<table class='basic col5'><thead><tr>";
|
||||
echo '<th>Identifiant</td>';
|
||||
echo '<th>Prenom</td>';
|
||||
echo '<th>Nom</td>';
|
||||
echo '<th>Semestre</td>';
|
||||
echo '<th>Groupe</td>';
|
||||
echo '</tr></thead></table>';
|
||||
|
||||
foreach($answer->grouplist as $group){ // pour chaque groupe
|
||||
|
||||
if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
|
||||
|
||||
echo "<table class='basic margin col5'>";
|
||||
|
||||
echo '<tbody>';
|
||||
|
||||
|
||||
// pour chaque utilisateur
|
||||
foreach($group['userlist'] as $user){
|
||||
echo '<tr>';
|
||||
echo "<td><span class=link>".$user['identifiant'].'</span></td>';
|
||||
echo '<td>'.$user['prenom'].'</td>';
|
||||
echo '<td>'.$user['nom'].'</td>';
|
||||
echo '<td>'.$group['semestre'].'</td>';
|
||||
echo '<td>Groupe <span class=stressed>'.$group['nom'].'</span></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
}
|
||||
echo "<select>";
|
||||
|
||||
/* select pour GROUPES */
|
||||
$lastGroupe = null;
|
||||
// echo '<tr><td colspan=5 class=more></td></tr>';
|
||||
|
||||
echo "<select name='groupe'>";
|
||||
echo "<option value='*'>Tous les groupes</option>";
|
||||
foreach($answer->grouplist as $group){
|
||||
if( $lastGroupe == null || $lastGroupe != $group->nom ){
|
||||
|
||||
if( $group['nom'] == $groupeOpt ) // si c'est le groupe séléctionné
|
||||
echo "<option value='".$group['nom']."' selected>".$group['nom'].'</option>';
|
||||
else
|
||||
echo "<option value='".$group['nom']."'>".$group['nom'].'</option>';
|
||||
|
||||
$lastGroupe = $group['nom'];
|
||||
}
|
||||
}
|
||||
echo "<select>";
|
||||
|
||||
echo "<table class='basic col5'><thead><tr>";
|
||||
echo '<th>Identifiant</td>';
|
||||
echo '<th>Prenom</td>';
|
||||
echo '<th>Nom</td>';
|
||||
echo '<th>Semestre</td>';
|
||||
echo '<th>Groupe</td>';
|
||||
echo '</tr></thead></table>';
|
||||
|
||||
foreach($answer->grouplist as $group){ // pour chaque groupe
|
||||
|
||||
if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
|
||||
|
||||
echo "<table class='basic margin col5'>";
|
||||
|
||||
echo '<tbody>';
|
||||
|
||||
|
||||
// pour chaque utilisateur
|
||||
foreach($group['userlist'] as $user){
|
||||
echo '<tr>';
|
||||
echo "<td><span class=link>".$user['identifiant'].'</span></td>';
|
||||
echo '<td>'.$user['prenom'].'</td>';
|
||||
echo '<td>'.$user['nom'].'</td>';
|
||||
echo '<td>'.$group['semestre'].'</td>';
|
||||
echo '<td>Groupe <span class=stressed>'.$group['nom'].'</span></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
// echo '<tr><td colspan=5 class=more></td></tr>';
|
||||
|
||||
echo '</tbody></table>';
|
||||
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
|
||||
}
|
||||
echo '</section>';
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
}else
|
||||
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
|
||||
|
||||
}
|
||||
echo '</section>';
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
}else
|
||||
echo "<section name='teachersgroups' data-title='Mes groupes' class='basic'><table class=basic><tbody><tr><td>Aucun groupe trouvé</td></tr></tbody></table></section>";
|
||||
|
||||
} ?>
|
||||
|
||||
|
@ -444,20 +456,26 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
|
|||
/* select pour SEMESTRES */
|
||||
$lastSemestre = null;
|
||||
|
||||
echo "<select name='semestre'>";
|
||||
echo "<option value='*'>Tous les semestres</option>";
|
||||
foreach($answer->grouplist as $group){
|
||||
echo "<table class='partlist' name='semestre'><tbody><tr>";
|
||||
|
||||
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( $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
|
||||
echo "<option value='".$group['semestre']."'>".$group['semestre'].'</option>';
|
||||
echo "<td data-value='".$group['semestre']."'>".$group['semestre'].'</td>';
|
||||
|
||||
$lastSemestre = $group['semestre'];
|
||||
}
|
||||
}
|
||||
echo "<select>";
|
||||
echo "</tr></tbody></table>";
|
||||
|
||||
/* select pour GROUPES */
|
||||
$lastGroupe = null;
|
||||
|
|
Loading…
Reference in New Issue