461 lines
16 KiB
PHP
Executable File
461 lines
16 KiB
PHP
Executable File
<?php define('__ROOT__', dirname(dirname(__FILE__)) );
|
|
require_once __ROOT__.'/manager/security.php';
|
|
require_once __ROOT__.'/manager/groups.php';
|
|
require_once __ROOT__.'/manager/modules.php';
|
|
require_once __ROOT__.'/manager/career.php';
|
|
|
|
|
|
|
|
|
|
/*** GESTION DES PARAMETRES OPTIONNELS ***/
|
|
|
|
// on initialise les paramètres optionnels
|
|
$controleOpt = 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;
|
|
|
|
/****************************************
|
|
* *
|
|
* SECTION "PARCOURS" *
|
|
* *
|
|
*****************************************
|
|
*
|
|
* [1] Mes modules (eleves) notes
|
|
* [2] Mes ue (eleves) notes
|
|
* [3] Mes semestres (eleves) notes
|
|
* [4] Graphiques (eleves) notes
|
|
*
|
|
*****************************************/
|
|
?>
|
|
|
|
|
|
|
|
|
|
<!-- mes contrôles -->
|
|
|
|
<?php
|
|
/****************************************/
|
|
/*** MES CONTRÔLES (version étudiant) ***/
|
|
/****************************************/
|
|
if( permission('student') ){ // si l'utilisateur est connecté et que c'est un élève
|
|
|
|
$request = new stdClass(); $answer = new stdClass();
|
|
debug();
|
|
|
|
$request->level_1 = 'getNotesEtudiant';
|
|
$request->etudiant = $_SESSION['identifiant'];
|
|
$request->semestre = $_SESSION['semestre'];
|
|
$request->annee = $_SESSION['annee'];
|
|
|
|
career_switch_level_1($request, $answer);
|
|
|
|
if( $answer->request == 'success' ){ // si on a bien récupéré les UE/notes
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
echo "<section name='marksbyue' data-title='Mes Notes' 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>";
|
|
|
|
foreach($answer->UEs as $UE){ // pour chaque UE
|
|
|
|
if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // on affiche l'UE en fonction du paramètre passé par l'URL
|
|
|
|
echo '</thead></table>';
|
|
foreach($UE['modules'] as $module){ // pour chaque module
|
|
echo '<table class=basic><thead class=normal>';
|
|
echo '<tr><th colspan=5><strong>'.$UE['nom'].'</strong> - '.$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='marksbyue' data-title='Mes Notes' class='basic'><table class=basic><tbody><tr><td>Aucune note trouvée</td></tr></tbody></table></section>";
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/******************************************/
|
|
/*** LES CONTRÔLES (version enseignant) ***/
|
|
/******************************************/
|
|
/*
|
|
*
|
|
* [1] Tous les contrôles
|
|
* [2] Un contrôle particulier( avec ou sans groupe particulier )
|
|
*
|
|
*/
|
|
|
|
|
|
/* [1] Tous les contrôles
|
|
==================================================================*/
|
|
if( permission('teacher') && $controleOpt == null ){ // si c'est un enseignant et qu'aucun contrôle n'est spécifié
|
|
|
|
|
|
$request = new stdClass(); $answer = new stdClass();
|
|
|
|
$request->level_1 = 'getControlesEnseignant';
|
|
$request->enseignant = $_SESSION['identifiant'];
|
|
$request->semestre = $_SESSION['semestre'];
|
|
$request->annee = $_SESSION['annee'];
|
|
|
|
career_switch_level_1($request, $answer);
|
|
|
|
if( $answer->request == 'success' ){ // si on a bien récupéré les UE/notes
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
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
|
|
|
|
if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // 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
|
|
|
|
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($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>".$module['nom']." - ".$module['libelle']."</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><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>";
|
|
|
|
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>';
|
|
}
|
|
|
|
}else // si aucun contrôle pour ce module
|
|
echo "<tr><td colspan=5>Aucun contrôle trouvé</td></tr>";
|
|
|
|
echo '</tbody>';
|
|
}
|
|
|
|
}
|
|
echo '</table>';
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
echo '</section>';
|
|
}else
|
|
echo "<section name='controlesenseignants' data-title='Contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";
|
|
|
|
|
|
|
|
}
|
|
|
|
/* [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();
|
|
|
|
$request->level_1 = 'getNotesEnseignant';
|
|
$request->enseignant = $_SESSION['identifiant'];
|
|
$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);
|
|
|
|
if( $answer->request == 'success' ){
|
|
echo "<section name='controlesenseignants' data-title='Contrôles' class='basic'>";
|
|
|
|
|
|
// bouton retour
|
|
// echo "<table class='basic'><thead><tr><th><span class='link'>Retour</span></th></tr></thead></table>";
|
|
// echo "<table class='basic'><thead><tr><th></th></tr></thead></table>";
|
|
|
|
|
|
echo "<table class='basic col4'><thead>";
|
|
echo "<th colspan=5 style='font-size:1.5em; text-align:center;'>".$answer->controle['module'].' - '.$answer->controle['intitule'].'</th>';
|
|
|
|
echo '<tr>';
|
|
echo "<th><span class='link ctrl' data-ctrl='".$answer->controle['id']."'>".$answer->controle['intitule']."</span></th>";
|
|
|
|
echo "<th>".$answer->controle['module']." - ".$answer->controle['modulelib']."</th>";
|
|
|
|
|
|
/* [1] Affichage par groupes
|
|
====================================================================================*/
|
|
if( $groupeOpt == null ){
|
|
|
|
if( count($answer->controle['grouplist']) == 0 ) // si il y a au moins une note pour ce contrôle
|
|
echo '<th><span class=unstressed>Pas noté</span></th>';
|
|
else
|
|
echo '<th><span class=unstressed>Moyenne de</span> '.number_format($answer->controle['moyenne'], 2).' <span class=unstressed>/</span> '.$answer->controle['base'].'</th>';
|
|
|
|
/* [2] Affichage par élèves
|
|
====================================================================================*/
|
|
}else{
|
|
|
|
if( count($answer->controle['userlist']) == 0 ) // si il y a au moins une note pour ce contrôle
|
|
echo '<th><span class=unstressed>Pas noté</span></th>';
|
|
else
|
|
echo '<th><span class=unstressed>Moyenne de</span> '.number_format($answer->controle['moyenne'], 2).' <span class=unstressed>/</span> '.$answer->controle['base'].'</th>';
|
|
|
|
}
|
|
|
|
|
|
echo '<th><span class=unstressed>Coefficient</span> '.number_format($answer->controle['coefficient'], 2).'</th>';
|
|
|
|
echo '</tr></thead>';
|
|
|
|
echo "<tbody>";
|
|
|
|
|
|
/* [1] Affichage par groupes
|
|
====================================================================================*/
|
|
if( $groupeOpt == null ){
|
|
|
|
foreach($answer->controle['grouplist'] as $note){ // on affiche la liste des groupes avec leurs stats
|
|
echo "<tr>";
|
|
|
|
echo "<td><span class='link grp ctrl' data-grp='".$note['groupe']."' data-ctrl='".$answer->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> ".$answer->controle['base']."</td>";
|
|
|
|
|
|
echo "</tr>";
|
|
}
|
|
|
|
/* [2] Affichage par élèves
|
|
====================================================================================*/
|
|
}else{
|
|
|
|
foreach($answer->controle['userlist'] as $user){ // on affiche la liste des élèves avec leurs notes
|
|
echo "<tr>";
|
|
|
|
echo "<td><span class='link etu' data-etu='".$user['identifiant']."' data-ctrl='".$answer->controle['id']."' data-info='".$user['prenom'].' '.$user['nom']."'>".$user['identifiant']."</span></td>";
|
|
echo "<td><span class='link grp' data-grp='".$user['groupe']."'>".$user['groupe']."</span></td>";
|
|
|
|
if( $user['note'] != null ) // si on a une note
|
|
echo "<td>".number_format($user['note'], 2)." <span class=unstressed>/</span> ".$answer->controle['base']."</td>";
|
|
else // si noté
|
|
echo "<td><span class=unstressed>Pas noté</span></td>";
|
|
|
|
echo "<td>";
|
|
if( $user['note'] != null ) // s'il a déjà une note, on la met par défaut
|
|
echo "<input class='saisie_note' data-ctrl='".$answer->controle['id']."' type='number' step='.25' min='0' max='".$answer->controle['base']."' placeholder='Note' value='".$user['note']."'>";
|
|
else // sinon on laisse le champ vide
|
|
echo "<input class='saisie_note' data-ctrl='".$answer->controle['id']."' type='number' step='.25' min='0' max='".$answer->controle['base']."' placeholder='Note'>";
|
|
|
|
echo "<div class='valider_action'>enregistrer</div>";
|
|
echo "</td>";
|
|
|
|
echo "</tr>";
|
|
}
|
|
|
|
}
|
|
|
|
echo '</tbody></table>';
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/***************************************************/
|
|
/*** 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>";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
?>
|