2015-10-29 23:01:35 +00:00
< ? php define ( '__ROOT__' , dirname ( dirname ( __FILE__ )) );
require_once __ROOT__ . '/manager/security.php' ;
2015-12-06 19:08:28 +00:00
// require_once __ROOT__.'/manager/groups.php';
// require_once __ROOT__.'/manager/modules.php';
// require_once __ROOT__.'/manager/career.php';
2015-10-29 23:01:35 +00:00
2015-11-13 23:47:11 +00:00
/*** GESTION DES PARAMETRES OPTIONNELS ***/
2015-11-15 17:12:49 +00:00
// on initialise les paramètres optionnels
2015-11-16 18:07:39 +00:00
$controleOpt = null ;
$groupeOpt = null ;
$etudiantOpt = null ;
$ueOpt = null ;
$semestreOpt = null ;
$formationOpt = null ;
2016-01-02 16:16:14 +00:00
$anneeOpt = null ;
2015-11-13 23:47:11 +00:00
2015-11-15 17:12:49 +00:00
// on cherche dans toutes les variables _get si on trouve des paramètres
foreach ( $_POST as $k => $v ){
2015-11-13 23:47:11 +00:00
2015-11-15 17:12:49 +00:00
if ( preg_match ( '/^g:(.+)$/' , $k , $m ) ) // g:nomGroupe
2015-11-30 18:29:12 +00:00
$groupeOpt = str_replace ( '%20' , ' ' , $m [ 1 ]);
2015-11-13 23:47:11 +00:00
2015-11-16 12:28:24 +00:00
if ( preg_match ( '/^c:(.+)$/' , $k , $m ) ) // c:idControle
2015-11-15 17:12:49 +00:00
$controleOpt = $m [ 1 ];
2015-11-13 23:47:11 +00:00
2015-11-16 12:28:24 +00:00
if ( preg_match ( '/^e:(.+)$/' , $k , $m ) ) // e:idEtudiant
2015-11-15 17:12:49 +00:00
$etudiantOpt = $m [ 1 ];
2015-11-16 12:28:24 +00:00
if ( preg_match ( '/^u:(.+)$/' , $k , $m ) ) // u:nomUe
2015-11-15 17:12:49 +00:00
$ueOpt = $m [ 1 ];
2015-11-16 12:28:24 +00:00
if ( preg_match ( '/^s:(.+)$/' , $k , $m ) ) // s:nomSemestre
$semestreOpt = $m [ 1 ];
2015-11-16 18:07:39 +00:00
if ( preg_match ( '/^f:(.+)$/' , $k , $m ) ) // f:codeFormation
$formationOpt = $m [ 1 ];
2016-01-02 16:16:14 +00:00
if ( preg_match ( '/^a:(.+)$/' , $k , $m ) ) // a:annee
$anneeOpt = $m [ 1 ];
2015-11-15 17:12:49 +00:00
}
2015-11-19 13:08:40 +00:00
$controleOpt = ( $controleOpt == null || $controleOpt == '*' ) ? null : $controleOpt ;
$groupeOpt = ( $groupeOpt == null || $groupeOpt == '*' ) ? null : $groupeOpt ;
$etudiantOpt = ( $etudiantOpt == null || $etudiantOpt == '*' ) ? null : $etudiantOpt ;
$ueOpt = ( $ueOpt == null || $ueOpt == '*' ) ? null : $ueOpt ;
$semestreOpt = ( $semestreOpt == null || $semestreOpt == '*' ) ? null : $semestreOpt ;
2015-11-16 18:07:39 +00:00
$formationOpt = ( $formationOpt == null || $formationOpt == '*' ) ? null : $formationOpt ;
2016-01-02 16:16:14 +00:00
$anneeOpt = ( $anneeOpt == null || $anneeOpt == '*' ) ? null : $anneeOpt ;
2015-11-13 23:47:11 +00:00
2016-01-04 22:02:57 +00:00
// servira pour le dossier étudiant
$semestreOptBis = $semestreOpt ;
2015-10-29 23:01:35 +00:00
/****************************************
* *
* SECTION " PARCOURS " *
* *
*****************************************
*
* [ 1 ] Mes modules ( eleves ) notes
* [ 2 ] Mes ue ( eleves ) notes
* [ 3 ] Mes semestres ( eleves ) notes
* [ 4 ] Graphiques ( eleves ) notes
*
*****************************************/
?>
2015-11-06 13:05:14 +00:00
2015-11-15 17:28:29 +00:00
<!-- mes contrôles -->
2015-10-29 23:01:35 +00:00
< ? php
2015-11-15 17:28:29 +00:00
/****************************************/
/*** MES CONTRÔLES (version étudiant) ***/
/****************************************/
2015-11-06 22:00:08 +00:00
if ( permission ( 'student' ) ){ // si l'utilisateur est connecté et que c'est un élève
2015-10-29 23:01:35 +00:00
$request = new stdClass (); $answer = new stdClass ();
2015-11-19 22:32:54 +00:00
$request -> level_1 = 'getNotesEtudiant' ;
$request -> etudiant = $_SESSION [ 'identifiant' ];
2016-01-02 13:21:31 +00:00
// $request->formation = $_SESSION['formation'];
2015-11-19 22:32:54 +00:00
$request -> semestre = $_SESSION [ 'semestre' ];
2016-01-02 13:21:31 +00:00
// $request->annee = $_SESSION['annee'];
2015-10-29 23:01:35 +00:00
2015-12-06 19:08:28 +00:00
careerManager :: switch_level_1 ( $request , $answer );
2015-10-29 23:01:35 +00:00
if ( $answer -> request == 'success' ){ // si on a bien récupéré les UE/notes
////////////////////////////////////////////////////////////////////////////////
2015-11-15 14:42:12 +00:00
echo " <section name='marksbyue' data-title='Mes Notes' class='basic'> " ;
2015-10-29 23:01:35 +00:00
2015-11-15 17:28:29 +00:00
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> " ;
2015-11-12 10:19:58 +00:00
foreach ( $answer -> UEs as $UE ){ // pour chaque UE
2015-11-15 17:28:29 +00:00
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>' ;
2016-01-07 22:54:43 +00:00
echo " <td><span class='link inactive'> " . $controle [ 'libelle' ] . " </span></td> " ;
2015-11-15 17:28:29 +00:00
2015-12-01 18:07:45 +00:00
if ( $controle [ 'publication' ] == '0' || count ( $controle [ 'notes' ]) == 0 ) // si aucune note pour ce controle on affiche 'Pas de note'
2015-12-01 19:00:37 +00:00
echo '<td><span class=unstressed>Pas encore de note</span></td>' ;
2015-11-15 17:28:29 +00:00
else // si une note, alors on l'affiche
echo '<td>' . number_format ( $controle [ 'notes' ][ 0 ][ 'valeur' ], 2 ) . ' <span class=unstressed>/</span> ' . $controle [ 'base' ] . '</td>' ;
2015-12-01 19:00:37 +00:00
echo " <td> " . $UE [ 'nom' ] . " - " . $UE [ 'libelle' ] . " </td> " ;
2015-11-15 17:28:29 +00:00
echo '<td>Coefficient ' . number_format ( $controle [ 'coefficient' ], 2 ) . '</td>' ;
echo '</tr>' ;
}
echo '</tbody>' ;
2015-11-13 16:24:58 +00:00
}
2015-11-15 17:28:29 +00:00
echo '</table>' ;
2015-11-13 16:24:58 +00:00
}
2015-11-12 10:19:58 +00:00
2015-10-29 23:01:35 +00:00
}
////////////////////////////////////////////////////////////////////////////////
echo '</section>' ;
} else
2015-11-15 14:42:12 +00:00
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> " ;
2015-10-29 23:01:35 +00:00
2015-11-13 18:07:36 +00:00
}
2015-11-14 17:33:06 +00:00
/******************************************/
/*** LES CONTRÔLES (version enseignant) ***/
/******************************************/
/*
*
* [ 1 ] Tous les contrôles
* [ 2 ] Un contrôle particulier ( avec ou sans groupe particulier )
*
*/
2015-11-13 18:07:36 +00:00
2015-11-14 17:33:06 +00:00
/* [ 1 ] Tous les contrôles
==================================================================*/
if ( permission ( 'teacher' ) && $controleOpt == null ){ // si c'est un enseignant et qu'aucun contrôle n'est spécifié
2015-11-13 18:07:36 +00:00
$request = new stdClass (); $answer = new stdClass ();
2015-11-26 17:17:05 +00:00
2015-11-13 18:07:36 +00:00
$request -> level_1 = 'getControlesEnseignant' ;
$request -> enseignant = $_SESSION [ 'identifiant' ];
$request -> annee = $_SESSION [ 'annee' ];
2015-12-06 19:08:28 +00:00
careerManager :: switch_level_1 ( $request , $answer );
2015-11-13 18:07:36 +00:00
if ( $answer -> request == 'success' ){ // si on a bien récupéré les UE/notes
////////////////////////////////////////////////////////////////////////////////
2015-11-26 18:06:27 +00:00
echo " <section name='controlesenseignants' data-controles data-title='Mes contrôles' class='basic'> " ;
2015-11-13 18:07:36 +00:00
2015-11-15 17:12:49 +00:00
2015-11-16 12:28:24 +00:00
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
2015-11-16 20:42:00 +00:00
$ListeUIDFormations = array ();
$ListeUIDSemestres = array ();
$ListeUIDUE = array ();
2015-11-16 12:28:24 +00:00
2015-11-16 20:42:00 +00:00
// Vérification de la formation si elle est définie
$verificationUIDFormations = array ();
foreach ( $answer -> semestres as $semestre ) // on récupère la liste des UID de FORMATIONS
if ( ! in_array ( $semestre [ 'id_formation' ], $verificationUIDFormations ) )
array_push ( $verificationUIDFormations , $semestre [ 'id_formation' ]);
2015-11-16 12:28:24 +00:00
2015-11-16 20:42:00 +00:00
// si la formation optionnelle n'est pas définie ou incohérente, on le fait (première valeur trouvée)
if ( $formationOpt == null || ! in_array ( $formationOpt , $verificationUIDFormations ) )
2016-01-04 17:54:37 +00:00
if ( count ( $verificationUIDFormations ) == 0 ) // si aucune formation trouvée
$formationOpt = 0 ;
else
$formationOpt = $verificationUIDFormations [ 0 ];
2015-11-16 18:07:39 +00:00
2015-11-16 20:42:00 +00:00
/**************************/
/* AFFINAGE PAR FORMATION */
/**************************/
2015-11-16 18:07:39 +00:00
echo " <table class='partlist' name='formation'><tbody><tr> " ;
2015-11-16 20:42:00 +00:00
foreach ( $answer -> semestres as $semestre ){ if ( ! in_array ( $semestre [ 'id_formation' ], $ListeUIDFormations ) ){
if ( $semestre [ 'id_formation' ] == $formationOpt ) // si c'est la formation séléctionnée
echo " <td data-value=' " . $semestre [ 'id_formation' ] . " ' class='active'> " . $semestre [ 'formation' ] . '</td>' ;
else // sinon on affiche normalement
echo " <td data-value=' " . $semestre [ 'id_formation' ] . " '> " . $semestre [ 'formation' ] . '</td>' ;
// on ajoute la formation à la liste pour ne pas la répéter
array_push ( $ListeUIDFormations , $semestre [ 'id_formation' ]);
}}
2015-11-16 18:07:39 +00:00
echo " </tr></tbody></table> " ;
2015-11-16 20:42:00 +00:00
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
2015-11-16 12:28:24 +00:00
echo " <table class='partlist' name='semestre'><tbody><tr> " ;
2015-11-16 20:42:00 +00:00
if ( $semestreOpt == null ) echo " <td data-value='*' class='active'>Tous</td> " ;
else echo " <td data-value='*'>Tous</td> " ;
/* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */
foreach ( $answer -> semestres as $semestre ){ if ( $semestre [ 'id_formation' ] == $formationOpt && ! in_array ( $semestre [ 'id' ], $ListeUIDSemestres ) ){
if ( $semestre [ 'id' ] == $semestreOpt ) // si c'est le semestre séléctionné
echo " <td data-value=' " . $semestre [ 'id' ] . " ' class='active'> " . $semestre [ 'nom' ] . '</td>' ;
else // sinon on affiche normalement
echo " <td data-value=' " . $semestre [ 'id' ] . " '> " . $semestre [ 'nom' ] . '</td>' ;
// on ajoute le semestre à la liste pour ne pas le répéter
array_push ( $ListeUIDSemestres , $semestre [ 'id' ]);
}}
2015-11-16 12:28:24 +00:00
echo " </tr></tbody></table> " ;
2015-11-16 20:42:00 +00:00
/*******************/
/* AFFINAGE PAR UE */
/*******************/
2015-11-15 17:12:49 +00:00
echo " <table class='partlist' name='UE'><tbody><tr> " ;
2015-11-15 17:28:29 +00:00
if ( $ueOpt == null ) echo " <td data-value='*' class='active'>Tous</td> " ;
else echo " <td data-value='*'>Tous</td> " ;
2015-11-16 20:42:00 +00:00
/* On récupère la liste des UEs en accord avec la FORMATION et le SEMESTRE sélectionnés */
foreach ( $answer -> semestres as $semestre ){ if ( $semestre [ 'id_formation' ] == $formationOpt && in_array ( $semestre [ 'id' ], $ListeUIDSemestres ) ){
foreach ( $semestre [ 'UElist' ] as $UE ){ if ( ! in_array ( $UE [ 'id' ], $ListeUIDUE ) ){
if ( $UE [ 'id' ] == $ueOpt ) // si c'est l'UE séléctionnée
echo " <td data-value=' " . $UE [ 'id' ] . " ' class='active'> " . $UE [ 'nom' ] . '</td>' ;
2015-11-15 17:28:29 +00:00
else // sinon on affiche normalement
2015-11-16 20:42:00 +00:00
echo " <td data-value=' " . $UE [ 'id' ] . " '> " . $UE [ 'nom' ] . '</td>' ;
// on ajoute l'UE à la liste pour ne pas le répéter
array_push ( $ListeUIDUE , $UE [ 'id' ]);
}}
}}
2015-11-15 17:12:49 +00:00
echo " </tr></tbody></table> " ;
2015-11-13 18:07:36 +00:00
2015-11-15 17:12:49 +00:00
2015-11-16 12:28:24 +00:00
if ( count ( $answer -> semestres ) > 0 ){ // si au moins un UE
2015-11-15 17:12:49 +00:00
2015-11-16 12:28:24 +00:00
foreach ( $answer -> semestres as $semestre ){
2015-11-15 17:12:49 +00:00
2015-11-16 20:42:00 +00:00
if ( ( $semestreOpt == null || $semestre [ 'id' ] == $semestreOpt ) && ( $formationOpt == null || $semestre [ 'id_formation' ] == $formationOpt ) ){ // on affiche les semestres en fonction de l'affinage
2015-11-15 17:12:49 +00:00
2015-11-16 12:28:24 +00:00
foreach ( $semestre [ 'UElist' ] as $UE ){ // pour chaque UE
2015-11-15 17:12:49 +00:00
2015-11-16 20:42:00 +00:00
if ( $ueOpt == null || $UE [ 'id' ] == $ueOpt ){ // on affiche l'UE en fonction du paramètre passé par l'URL
2015-11-15 23:01:05 +00:00
2015-11-16 12:28:24 +00:00
if ( count ( $UE [ 'modules' ]) > 0 ){ // s'il y a au moins un module
2015-11-13 23:47:11 +00:00
2015-11-16 12:28:24 +00:00
foreach ( $UE [ 'modules' ] as $module ){ // pour chaque module
echo " <table class='basic col5'><thead> " ;
2016-01-07 20:15:16 +00:00
echo '<tr><th colspan=4><strong>' . $semestre [ 'nom_formation' ] . ' - ' . $semestre [ 'nom' ] . " - <span class='unstressed'> " . $UE [ 'nom' ] . " - " . $module [ 'nom' ] . " - " . $module [ 'libelle' ] . " </span></th></tr></thead><tbody> " ;
2015-11-16 12:28:24 +00:00
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>' ;
2015-11-21 12:13:40 +00:00
echo " <td><span class='link ctrl' data-ctrl=' " . $controle [ 'id' ] . " '> " . $controle [ 'libelle' ] . " </span></td> " ;
2015-11-16 12:28:24 +00:00
echo " <td> " . $module [ 'nom' ] . " - " . $module [ 'libelle' ] . " </td> " ;
echo " <td> " . $UE [ 'nom' ] . " - " . $UE [ 'libelle' ] . " </td> " ;
if ( $controle [ 'moyenne' ] == null ) // 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>";
// 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>' ;
2015-11-13 23:47:11 +00:00
}
2015-11-16 12:28:24 +00:00
}
echo '</table>' ;
2015-11-13 18:07:36 +00:00
2015-11-15 17:12:49 +00:00
}
2015-11-13 18:07:36 +00:00
}
}
2015-11-16 12:28:24 +00:00
2015-11-13 18:07:36 +00:00
}
}
////////////////////////////////////////////////////////////////////////////////
echo '</section>' ;
2015-11-30 16:25:33 +00:00
} /* else
2015-11-26 18:06:27 +00:00
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> " ;
2015-11-30 16:25:33 +00:00
*/
2015-11-14 17:33:06 +00:00
2015-11-13 18:07:36 +00:00
}
2015-11-14 17:33:06 +00:00
/* [ 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 ();
2015-12-01 17:15:44 +00:00
$request -> level_1 = 'getNotesEnseignant' ;
2015-11-14 17:33:06 +00:00
$request -> enseignant = $_SESSION [ 'identifiant' ];
2015-12-01 17:15:44 +00:00
$request -> controle = $controleOpt ;
2015-11-14 17:33:06 +00:00
if ( $groupeOpt != null ) $request -> groupe = $groupeOpt ; // on définit le groupe s'il est spécifié
2015-12-06 19:08:28 +00:00
careerManager :: switch_level_1 ( $request , $answer );
2015-11-14 17:33:06 +00:00
if ( $answer -> request == 'success' ){
2015-11-26 18:06:27 +00:00
echo " <section name='controlesenseignants' data-controles data-title='Mes contrôles' class='basic'> " ;
2015-11-26 17:17:05 +00:00
// 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 [ 'nom' ] . ' - ' . $answer -> controle [ 'libelle' ] . '</th>' ;
2016-01-03 21:02:46 +00:00
echo '<tr class="noborder transparentbg">' ;
echo " <td><div class='confirm active' style='background-color:#fff;' id='import_notes' data-ctrl=' " . $answer -> controle [ 'id' ] . " '>Importer les notes " ;
echo " <input type='file'></div></td> " ;
2015-11-26 17:17:05 +00:00
echo " <th> " . $answer -> controle [ 'module' ] . " - " . $answer -> controle [ 'modulelib' ] . " </th> " ;
/* [ 1 ] Affichage par groupes
====================================================================================*/
if ( $groupeOpt == null ){
if ( $answer -> controle [ 'moyenne' ] == null ) // 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 {
2015-11-29 11:41:22 +00:00
if ( ! isset ( $answer -> controle [ 'userlist' ]) || ! is_array ( $answer -> controle [ 'userlist' ]) || count ( $answer -> controle [ 'userlist' ]) == 0 ) // si il y a au moins une note pour ce contrôle
2015-11-26 17:17:05 +00:00
echo '<th><span class=unstressed>Pas noté</span></th>' ;
else
2016-01-07 22:17:23 +00:00
echo '<th><span class=unstressed>Moyenne de</span> ' . number_format ( $answer -> controle [ 'moyenneGroupe' ], 2 ) . ' <span class=unstressed>/</span> ' . $answer -> controle [ 'base' ] . '</th>' ;
2015-11-26 17:17:05 +00:00
}
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 $groupe ){ // on affiche la liste des groupes avec leurs stats
echo " <tr> " ;
2015-11-30 18:32:05 +00:00
echo " <td><span class='link grp ctrl' data-grp=' " . $groupe [ 'id_groupe' ] . " ' data-ctrl=' " . $answer -> controle [ 'id' ] . " '> " . $groupe [ 'nom' ] . " </span></td> " ;
2015-11-26 17:17:05 +00:00
if ( isset ( $groupe [ 'nb_notes' ]) ){ // si ce groupe a des notes
if ( $groupe [ 'nb_notes' ] == 1 ) echo " <td> " . $groupe [ 'nb_notes' ] . " <span class=unstressed>note</span></td> " ;
else echo " <td> " . $groupe [ 'nb_notes' ] . " <span class=unstressed>notes</span></td> " ;
echo " <td><span class=unstressed>Allant de</span> " . number_format ( $groupe [ 'min' ], 2 ) . " <span class=unstressed>à</span> " . number_format ( $groupe [ 'max' ], 2 ) . " </td> " ;
echo " <td><span class=unstressed>Moyenne de </span> " . number_format ( $groupe [ 'moyenne' ], 2 ) . " <span class=unstressed>/</span> " . $answer -> controle [ 'base' ] . " </td> " ;
} else { // si le groupe n'a aucune note
echo " <td><span class=unstressed>Pas de note</span></td> " ;
echo " <td></td> " ;
echo " <td></td> " ;
}
echo " </tr> " ;
}
/* [ 2 ] Affichage par élèves
====================================================================================*/
2015-11-29 11:41:22 +00:00
} elseif ( isset ( $answer -> controle [ 'userlist' ]) && is_array ( $answer -> controle [ 'userlist' ]) && count ( $answer -> controle [ 'userlist' ]) > 0 ){
// var_dump($answer->controle['userlist']);
2015-11-26 17:17:05 +00:00
foreach ( $answer -> controle [ 'userlist' ] as $user ){ // on affiche la liste des élèves avec leurs notes
echo " <tr> " ;
2016-01-07 22:54:43 +00:00
echo " <td><span class='link etu inactive' data-etu=' " . $user [ 'identifiant' ] . " ' data-ctrl=' " . $answer -> controle [ 'id' ] . " ' data-info=' " . $user [ 'prenom' ] . ' - ' . $user [ 'nom' ] . " '> " . $user [ 'identifiant' ] . " </span></td> " ;
2016-01-05 20:34:43 +00:00
echo " <td><span class='link grp' data-grp=' " . $user [ 'id_groupe' ] . " '> " . $user [ 'groupe' ] . " </span></td> " ;
2015-11-26 17:17:05 +00:00
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
2016-01-08 17:00:40 +00:00
echo " <input class='saisie_note' data-ctrl=' " . $answer -> controle [ 'id' ] . " ' type='text' min='0' max=' " . $answer -> controle [ 'base' ] . " ' placeholder='Note' value=' " . $user [ 'note' ] . " '> " ;
2015-11-26 17:17:05 +00:00
else // sinon on laisse le champ vide
2016-01-08 17:00:40 +00:00
echo " <input class='saisie_note' data-ctrl=' " . $answer -> controle [ 'id' ] . " ' type='text' min='0' max=' " . $answer -> controle [ 'base' ] . " ' placeholder='Note'> " ;
2015-11-26 17:17:05 +00:00
echo " <div class='confirm'>enregistrer</div> " ;
echo " </td> " ;
echo " </tr> " ;
}
echo " <tr> " ;
echo " <td></td> " ;
echo " <td></td> " ;
echo " <td></td> " ;
echo " <td><div class='confirm all'>tout enregistrer</div></td> " ;
echo " </tr> " ;
}
echo '</tbody></table>' ;
2015-11-26 18:06:27 +00:00
echo " </section> " ;
2015-11-26 17:17:05 +00:00
} else
2015-11-26 18:06:27 +00:00
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> " ;
2015-11-26 17:17:05 +00:00
}
/********************************************/
/*** LES CONTRÔLES (version admin/master) ***/
/********************************************/
/*
*
* [ 1 ] Tous les contrôles
* [ 2 ] Un contrôle particulier ( avec ou sans groupe particulier )
*
*/
/* [ 1 ] Tous les contrôles
==================================================================*/
if ( ( permission ( 'master' ) || permission ( 'admin' )) && $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 = 'getControlesForYear' ;
$request -> annee = $_SESSION [ 'annee' ];
2015-12-06 19:08:28 +00:00
careerManager :: switch_level_1 ( $request , $answer );
2015-11-26 17:17:05 +00:00
if ( $answer -> request == 'success' ){ // si on a bien récupéré les UE/notes
////////////////////////////////////////////////////////////////////////////////
2015-11-26 18:06:27 +00:00
echo " <section name='allcontroles' data-controles data-title='Tous les contrôles' class='basic'> " ;
2015-11-26 17:17:05 +00:00
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
$ListeUIDFormations = array ();
$ListeUIDSemestres = array ();
$ListeUIDUE = array ();
// Vérification de la formation si elle est définie
$verificationUIDFormations = array ();
foreach ( $answer -> semestres as $semestre ) // on récupère la liste des UID de FORMATIONS
if ( ! in_array ( $semestre [ 'id_formation' ], $verificationUIDFormations ) )
array_push ( $verificationUIDFormations , $semestre [ 'id_formation' ]);
// si la formation optionnelle n'est pas définie ou incohérente, on le fait (première valeur trouvée)
if ( $formationOpt == null || ! in_array ( $formationOpt , $verificationUIDFormations ) )
2016-01-04 17:54:37 +00:00
if ( count ( $verificationUIDFormations ) == 0 ) // si aucune formation trouvée
$formationOpt = 0 ;
else
$formationOpt = $verificationUIDFormations [ 0 ];
2015-11-26 17:17:05 +00:00
/**************************/
/* AFFINAGE PAR FORMATION */
/**************************/
echo " <table class='partlist' name='formation'><tbody><tr> " ;
foreach ( $answer -> semestres as $semestre ){ if ( ! in_array ( $semestre [ 'id_formation' ], $ListeUIDFormations ) ){
if ( $semestre [ 'id_formation' ] == $formationOpt ) // si c'est la formation séléctionnée
echo " <td data-value=' " . $semestre [ 'id_formation' ] . " ' class='active'> " . $semestre [ 'formation' ] . '</td>' ;
else // sinon on affiche normalement
echo " <td data-value=' " . $semestre [ 'id_formation' ] . " '> " . $semestre [ 'formation' ] . '</td>' ;
// on ajoute la formation à la liste pour ne pas la répéter
array_push ( $ListeUIDFormations , $semestre [ 'id_formation' ]);
}}
echo " </tr></tbody></table> " ;
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
echo " <table class='partlist' name='semestre'><tbody><tr> " ;
if ( $semestreOpt == null ) echo " <td data-value='*' class='active'>Tous</td> " ;
else echo " <td data-value='*'>Tous</td> " ;
/* On récupère la liste des SEMESTRES en accord avec la FORMATION sélectionnée */
foreach ( $answer -> semestres as $semestre ){ if ( $semestre [ 'id_formation' ] == $formationOpt && ! in_array ( $semestre [ 'id' ], $ListeUIDSemestres ) ){
if ( $semestre [ 'id' ] == $semestreOpt ) // si c'est le semestre séléctionné
echo " <td data-value=' " . $semestre [ 'id' ] . " ' class='active'> " . $semestre [ 'nom' ] . '</td>' ;
else // sinon on affiche normalement
echo " <td data-value=' " . $semestre [ 'id' ] . " '> " . $semestre [ 'nom' ] . '</td>' ;
// on ajoute le semestre à la liste pour ne pas le répéter
array_push ( $ListeUIDSemestres , $semestre [ 'id' ]);
}}
echo " </tr></tbody></table> " ;
/*******************/
/* AFFINAGE PAR UE */
/*******************/
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> " ;
/* On récupère la liste des UEs en accord avec la FORMATION et le SEMESTRE sélectionnés */
foreach ( $answer -> semestres as $semestre ){ if ( $semestre [ 'id_formation' ] == $formationOpt && in_array ( $semestre [ 'id' ], $ListeUIDSemestres ) ){
foreach ( $semestre [ 'UElist' ] as $UE ){ if ( ! in_array ( $UE [ 'id' ], $ListeUIDUE ) ){
if ( $UE [ 'id' ] == $ueOpt ) // si c'est l'UE séléctionnée
echo " <td data-value=' " . $UE [ 'id' ] . " ' class='active'> " . $UE [ 'nom' ] . '</td>' ;
else // sinon on affiche normalement
echo " <td data-value=' " . $UE [ 'id' ] . " '> " . $UE [ 'nom' ] . '</td>' ;
// on ajoute l'UE à la liste pour ne pas le répéter
array_push ( $ListeUIDUE , $UE [ 'id' ]);
}}
}}
echo " </tr></tbody></table> " ;
if ( count ( $answer -> semestres ) > 0 ){ // si au moins un UE
foreach ( $answer -> semestres as $semestre ){
if ( ( $semestreOpt == null || $semestre [ 'id' ] == $semestreOpt ) && ( $formationOpt == null || $semestre [ 'id_formation' ] == $formationOpt ) ){ // on affiche les semestres en fonction de l'affinage
foreach ( $semestre [ 'UElist' ] as $UE ){ // pour chaque UE
if ( $ueOpt == null || $UE [ 'id' ] == $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 col5'><thead> " ;
2016-01-07 20:15:16 +00:00
echo '<tr><th colspan=4><strong>' . $semestre [ 'nom_formation' ] . ' - ' . $semestre [ 'nom' ] . " - <span class='unstressed'> " . $UE [ 'nom' ] . " - " . $module [ 'nom' ] . " - " . $module [ 'libelle' ] . " </span></th></tr></thead><tbody> " ;
2015-11-26 17:17:05 +00:00
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 [ 'libelle' ] . " </span></td> " ;
echo " <td> " . $module [ 'nom' ] . " - " . $module [ 'libelle' ] . " </td> " ;
echo " <td> " . $UE [ 'nom' ] . " - " . $UE [ 'libelle' ] . " </td> " ;
if ( $controle [ 'moyenne' ] == null ) // 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>' ;
2015-12-01 18:01:05 +00:00
2016-01-02 13:27:04 +00:00
/**/ // seul l'admin peut publier/cacher les notes
if ( permission ( 'admin' ) ){
if ( $controle [ 'publication' ] == '0' )
2016-01-07 18:18:21 +00:00
echo " <td><div class='confirm pamp center active' data-ctrl=' " . $controle [ 'id' ] . " ' data-publication='1'>caché</div></td> " ;
2016-01-02 13:27:04 +00:00
else
2016-01-07 18:18:21 +00:00
echo " <td><div class='confirm center active' data-ctrl=' " . $controle [ 'id' ] . " ' data-publication='0'>visible</div></td> " ;
2016-01-02 13:27:04 +00:00
}
2015-12-01 18:01:05 +00:00
2015-11-26 17:17:05 +00:00
echo '</tr>' ;
// echo "<tr class='noborder transparentbg'><td></td><td colspan=3><table class='basic col4'><tbody>";
// 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
2015-11-26 18:06:27 +00:00
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> " ;
2015-11-26 17:17:05 +00:00
}
/* [ 2 ] Un contrôle particulier ( avec ou sans groupe particulier )
==================================================================*/
elseif ( permission ( 'master' ) || permission ( 'admin' ) ){ // si enseignant et qu'un contrôle est spécifié
$request = new stdClass (); $answer = new stdClass ();
$request -> level_1 = 'getNotesForYear' ;
$request -> controle = $controleOpt ;
if ( $groupeOpt != null ) $request -> groupe = $groupeOpt ; // on définit le groupe s'il est spécifié
2015-12-06 19:08:28 +00:00
careerManager :: switch_level_1 ( $request , $answer );
2015-11-26 17:17:05 +00:00
if ( $answer -> request == 'success' ){
2015-11-26 18:06:27 +00:00
echo " <section name='allcontroles' data-controles data-title='Tous les contrôles' class='basic'> " ;
2015-11-14 17:33:06 +00:00
// 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> " ;
2015-11-21 12:28:13 +00:00
echo " <th colspan=5 style='font-size:1.5em; text-align:center;'> " . $answer -> controle [ 'nom' ] . ' - ' . $answer -> controle [ 'libelle' ] . '</th>' ;
2015-11-14 17:33:06 +00:00
2016-01-03 21:07:50 +00:00
echo '<tr class="noborder transparentbg">' ;
2016-01-05 22:40:13 +00:00
/**/ if ( permission ( 'admin' ) ){
echo " <td><div class='confirm active' style='background-color:#fff;' id='import_notes' data-ctrl=' " . $answer -> controle [ 'id' ] . " '>Importer les notes " ;
echo " <input type='file'></div></td> " ;
} else { // remplacement du "Importer notes"
echo " <td></td> " ;
}
2015-11-14 17:33:06 +00:00
echo " <th> " . $answer -> controle [ 'module' ] . " - " . $answer -> controle [ 'modulelib' ] . " </th> " ;
2016-01-03 21:07:50 +00:00
2015-11-15 11:15:30 +00:00
/* [ 1 ] Affichage par groupes
====================================================================================*/
if ( $groupeOpt == null ){
2015-11-15 23:09:04 +00:00
if ( $answer -> controle [ 'moyenne' ] == null ) // si il y a au moins une note pour ce contrôle
2015-11-15 11:15:30 +00:00
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
2016-01-07 22:17:23 +00:00
echo '<th><span class=unstressed>Moyenne de</span> ' . number_format ( $answer -> controle [ 'moyenneGroupe' ], 2 ) . ' <span class=unstressed>/</span> ' . $answer -> controle [ 'base' ] . '</th>' ;
2015-11-15 11:15:30 +00:00
}
2015-11-14 17:33:06 +00:00
echo '<th><span class=unstressed>Coefficient</span> ' . number_format ( $answer -> controle [ 'coefficient' ], 2 ) . '</th>' ;
echo '</tr></thead>' ;
echo " <tbody> " ;
2015-11-15 11:15:30 +00:00
/* [ 1 ] Affichage par groupes
====================================================================================*/
if ( $groupeOpt == null ){
2015-11-15 22:29:39 +00:00
foreach ( $answer -> controle [ 'grouplist' ] as $groupe ){ // on affiche la liste des groupes avec leurs stats
2015-11-15 11:15:30 +00:00
echo " <tr> " ;
2015-11-14 17:33:06 +00:00
2015-11-30 18:32:05 +00:00
echo " <td><span class='link grp ctrl' data-grp=' " . $groupe [ 'id_groupe' ] . " ' data-ctrl=' " . $answer -> controle [ 'id' ] . " '> " . $groupe [ 'nom' ] . " </span></td> " ;
2015-11-15 11:15:30 +00:00
2015-11-15 22:29:39 +00:00
if ( isset ( $groupe [ 'nb_notes' ]) ){ // si ce groupe a des notes
if ( $groupe [ 'nb_notes' ] == 1 ) echo " <td> " . $groupe [ 'nb_notes' ] . " <span class=unstressed>note</span></td> " ;
else echo " <td> " . $groupe [ 'nb_notes' ] . " <span class=unstressed>notes</span></td> " ;
2015-11-15 11:15:30 +00:00
2015-11-15 22:29:39 +00:00
echo " <td><span class=unstressed>Allant de</span> " . number_format ( $groupe [ 'min' ], 2 ) . " <span class=unstressed>à</span> " . number_format ( $groupe [ 'max' ], 2 ) . " </td> " ;
echo " <td><span class=unstressed>Moyenne de </span> " . number_format ( $groupe [ 'moyenne' ], 2 ) . " <span class=unstressed>/</span> " . $answer -> controle [ 'base' ] . " </td> " ;
2015-11-14 17:33:06 +00:00
2015-11-15 22:29:39 +00:00
} else { // si le groupe n'a aucune note
echo " <td><span class=unstressed>Pas de note</span></td> " ;
echo " <td></td> " ;
echo " <td></td> " ;
}
2015-11-14 17:33:06 +00:00
2015-11-15 11:15:30 +00:00
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> " ;
2015-11-15 14:42:12 +00:00
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> " ;
2016-01-05 20:34:43 +00:00
echo " <td><span class='link grp' data-grp=' " . $user [ 'id_groupe' ] . " '> " . $user [ 'groupe' ] . " </span></td> " ;
2015-11-15 11:15:30 +00:00
2015-11-15 12:02:34 +00:00
if ( $user [ 'note' ] != null ) // si on a une note
2015-11-15 11:15:30 +00:00
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> " ;
2015-11-14 17:33:06 +00:00
2015-11-26 19:37:41 +00:00
if ( permission ( 'admin' ) ){
echo " <td> " ;
if ( $user [ 'note' ] != null ) // s'il a déjà une note, on la met par défaut
2016-01-07 21:39:01 +00:00
echo " <input class='saisie_note' data-ctrl=' " . $answer -> controle [ 'id' ] . " ' type='text' step='.25' min='0' max=' " . $answer -> controle [ 'base' ] . " ' placeholder='Note' value=' " . $user [ 'note' ] . " '> " ;
2015-11-26 19:37:41 +00:00
else // sinon on laisse le champ vide
2016-01-07 21:39:01 +00:00
echo " <input class='saisie_note' data-ctrl=' " . $answer -> controle [ 'id' ] . " ' type='text' step='.25' min='0' max=' " . $answer -> controle [ 'base' ] . " ' placeholder='Note'> " ;
2015-11-26 19:37:41 +00:00
echo " <div class='confirm'>enregistrer</div> " ;
echo " </td> " ;
} else // si 'master'
echo " <td></td> " ;
2015-11-14 17:33:06 +00:00
2015-11-15 11:15:30 +00:00
echo " </tr> " ;
}
2015-11-14 17:33:06 +00:00
2015-11-15 21:36:35 +00:00
echo " <tr> " ;
echo " <td></td> " ;
echo " <td></td> " ;
echo " <td></td> " ;
echo " <td><div class='confirm all'>tout enregistrer</div></td> " ;
echo " </tr> " ;
2015-11-14 17:33:06 +00:00
}
echo '</tbody></table>' ;
2015-11-26 18:06:27 +00:00
echo " </section> " ;
2015-11-19 07:58:15 +00:00
} else
2015-11-26 18:06:27 +00:00
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> " ;
2015-11-19 07:58:15 +00:00
2015-11-14 17:33:06 +00:00
}
2015-11-13 18:07:36 +00:00
2015-11-22 09:54:05 +00:00
2016-01-02 16:16:14 +00:00
/****************************************************************/
/****************************************************************/
/*** IMPORT/EXPORT APPRÉCIATIONS JURY ***/
/*
*
* [ 1 ] Export modèle pour semestre
* [ 2 ] Import pour semestre
*
*/
if ( permission ( 'master' ) || permission ( 'admin' ) ){
echo " <section name='importjury' data-title='Jury' class='basic'> " ;
/* [ 1 ] Exportation
==========================================*/
// si annéeOpt n'est pas définie, on le fait
if ( $anneeOpt == null ) $anneeOpt = $_SESSION [ 'annee' ];
/* ON RÉCUPÈRE LA LISTE DES SEMESTRES EN FONCTION DE L'ANNEE */
$request = new stdClass (); $answer = new stdClass ();
$request -> level_1 = 'getSemestres' ;
groupsManager :: switch_level_1 ( $request , $answer ); // on fait la requête pour les groupes en fonction des filtres si définis
if ( $answer -> request == 'success' ){ // si pas d'erreur
echo " <div class='p center'> " ;
$anneesListe = array ();
/**********************/
/* AFFINAGE PAR ANNEE */
/**********************/
2016-01-02 19:15:06 +00:00
echo " Exportation des feuilles jury d'un semestre<br> " ;
2016-01-02 16:16:14 +00:00
echo " <span style='font-size:.8em;'>(Format compatible Microsoft Office, Open Office et Libre Office)</span><br> " ;
/* AFFINAGE POUR LES 5 ANNEES SUIVANTES */
echo " <select name='annee'> " ;
foreach ( $answer -> yearList as $annee ){ if ( ! in_array ( $annee [ 'annee' ], $anneesListe ) ){ // pour éviter les doublons
if ( $anneeOpt == $annee [ 'annee' ] ) // on préselectionne l'année selectionnée
echo " <option value=' " . $annee [ 'annee' ] . " ' selected> " . anneeScolaire ( $annee [ 'annee' ]) . " </option> " ;
else
echo " <option value=' " . $annee [ 'annee' ] . " '> " . anneeScolaire ( $annee [ 'annee' ]) . " </option> " ;
array_push ( $anneesListe , $annee [ 'annee' ]);
}}
echo " </select><br><br> " ;
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
$semestresListe = array ();
foreach ( $answer -> yearList as $annee ){ if ( $annee [ 'annee' ] == $anneeOpt ){ // on récupère la liste des ids
foreach ( $annee [ 'semestres' ] as $semestre ){ if ( ! in_array ( $semestre [ 'id' ], $semestresListe ) ){
array_push ( $semestresListe , $semestre [ 'id' ]);
}}
}}
// si semestreOpt n'est pas cohérent (pas pour cette année), on lui donne une valeur cohérente
if ( ! in_array ( $semestreOpt , $semestresListe ) ) $semestreOpt = null ;
if ( $semestreOpt == null && count ( $semestresListe ) > 0 ) $semestreOpt = $semestresListe [ 0 ];
$count = 0 ;
echo " <div class='partlist' name='semestre'> " ;
/* On récupère la liste des SEMESTRES en accord avec l'ANNEE sélectionnée */
foreach ( $answer -> yearList as $annee ){ if ( $anneeOpt == $annee [ 'annee' ] ){
foreach ( $annee [ 'semestres' ] as $semestre ){ if ( in_array ( $semestre [ 'id' ], $semestresListe ) ){
$count ++ ;
if ( $semestre [ 'id' ] == $semestreOpt ) // si c'est le semestre séléctionné
echo " <span data-year=' " . $annee [ 'annee' ] . " ' data-frm=' " . $semestre [ 'id_formation' ] . " ' data-stre=' " . $semestre [ 'id' ] . " ' class='active'> " . $semestre [ 'formation' ] . " - " . $semestre [ 'nom' ] . '</span>' ;
else // sinon on affiche normalement
echo " <span data-year=' " . $annee [ 'annee' ] . " ' data-frm=' " . $semestre [ 'id_formation' ] . " ' data-stre=' " . $semestre [ 'id' ] . " '> " . $semestre [ 'formation' ] . " - " . $semestre [ 'nom' ] . '</span>' ;
}}
}}
echo " </div><br><br> " ;
if ( $count == 0 ) // si on a trouvé aucun semestre
echo " <span class='unstressed'>Aucun semestre pour cette année</span><br><br> " ;
else {
// si on a selectionné un semestre
if ( $semestreOpt != null )
foreach ( $answer -> yearList as $annee ){ if ( $anneeOpt == $annee [ 'annee' ] ){ foreach ( $annee [ 'semestres' ] as $semestre ){ if ( $semestreOpt == $semestre [ 'id' ] ){
echo " <span class='unstressed'> " . $semestre [ 'nb_etudiants' ] . " étudiants</span><br><br> " ;
}}}}
else { // si on a selectionné "Tous"
$nbTotal = 0 ;
foreach ( $answer -> yearList as $annee ){ if ( $anneeOpt == $annee [ 'annee' ] ){ foreach ( $annee [ 'semestres' ] as $semestre ){
$nbTotal += $semestre [ 'nb_etudiants' ];
}}}
echo " <span class='unstressed'> " . $nbTotal . " étudiants</span><br><br> " ;
}
}
2016-01-02 19:15:06 +00:00
echo " <div data-year=' " . $anneeOpt . " ' data-stre=' " . $semestreOpt . " ' class='confirm active center' id='export_jury'>Télécharger le fichier</div> " ;
2016-01-02 16:16:14 +00:00
echo " </div> " ;
// l'admin peut importer un MCC
if ( permission ( 'admin' ) ){
/* [ 2 ] Importation
==========================================*/
2016-01-07 20:32:00 +00:00
$currentYear = $_SESSION [ 'annee' ];
2016-01-02 16:16:14 +00:00
// si annéeOpt n'est pas définie, on le fait
if ( $anneeOpt == null || $anneeOpt < $currentYear || $anneeOpt > $currentYear + 5 ) $anneeOpt = $currentYear ;
$anneeOpt = intval ( $anneeOpt ); // on met l'année en (int)
echo " <div class='p center'> " ;
2016-01-02 19:15:06 +00:00
echo " Importation des mentions jury d'un semestre<br> " ;
2016-01-07 15:14:31 +00:00
echo " <span style='font-size:.8em;'>(Fichier .xlsx suivant le modèle : <a href='http:// " . $_SERVER [ 'HTTP_HOST' ] . " /src/files/modele_import_jury.xlsx'>modèle de fichier</a>)</span><br> " ;
2016-01-02 16:16:14 +00:00
/**********************/
/* AFFINAGE PAR ANNEE */
/**********************/
/* AFFINAGE POUR LES 5 ANNEES SUIVANTES */
echo " <select name='annee'> " ;
for ( $i = 0 ; $i < 5 ; $i ++ ){
if ( $anneeOpt == $currentYear + $i ) // on préselectionne l'année selectionnée
echo " <option value=' " . ( $currentYear + $i ) . " ' selected> " . anneeScolaire ( $currentYear + $i ) . " </option> " ;
else
echo " <option value=' " . ( $currentYear + $i ) . " '> " . anneeScolaire ( $currentYear + $i ) . " </option> " ;
}
echo " </select><br> " ;
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
/* On récupère la liste des SEMESTRES en accord avec l'ANNEE sélectionnée */
$semestresListe = array ();
foreach ( $answer -> yearList as $annee ){ if ( $annee [ 'annee' ] == $anneeOpt ){ // on récupère la liste des ids
foreach ( $annee [ 'semestres' ] as $semestre ){ if ( ! in_array ( $semestre [ 'id' ], $semestresListe ) ){
array_push ( $semestresListe , $semestre [ 'id' ]);
}}
}}
// si semestreOpt n'est pas cohérent (pas pour cette année)
if ( ! in_array ( $semestreOpt , $semestresListe ) ) $semestreOpt = null ;
if ( $semestreOpt == null && count ( $semestresListe ) > 0 ) $semestreOpt = $semestresListe [ 0 ];
$count = 0 ;
foreach ( $answer -> yearList as $annee ){ if ( $anneeOpt == $annee [ 'annee' ] ){
$count ++ ;
echo " <div class='partlist' name='semestre'> " ;
foreach ( $annee [ 'semestres' ] as $semestre ){ if ( in_array ( $semestre [ 'id' ], $semestresListe ) ){
if ( $semestre [ 'id' ] == $semestreOpt ) // si c'est le semestre séléctionné
2016-01-02 19:15:06 +00:00
echo " <span data-year=' " . $anneeOpt . " ' data-stre=' " . $semestre [ 'id' ] . " ' class='active'> " . $semestre [ 'formation' ] . " - " . $semestre [ 'nom' ] . '</span>' ;
2016-01-02 16:16:14 +00:00
else // sinon on affiche normalement
2016-01-02 19:15:06 +00:00
echo " <span data-year=' " . $anneeOpt . " ' data-stre=' " . $semestre [ 'id' ] . " '> " . $semestre [ 'formation' ] . " - " . $semestre [ 'nom' ] . '</span>' ;
2016-01-02 16:16:14 +00:00
}}
echo " </div><br><br> " ;
}}
if ( $count == 0 )
echo " <span class='link' id='link_semestre'>Créer un semestre</span><br><br> " ;
if ( $semestreOpt != null )
2016-01-03 10:55:20 +00:00
echo " <div id='import_jury' data-stre=' " . $semestreOpt . " ' class='confirm active center'>Importer les décisions du jury<input type='file'></div> " ;
2016-01-02 16:16:14 +00:00
echo " </div> " ;
2016-01-05 22:40:13 +00:00
}
2016-01-02 16:16:14 +00:00
}
echo " </section> " ;
}
2015-11-22 09:54:05 +00:00
2015-11-26 20:54:01 +00:00
/****************************************************************/
/*** LES DOSSIERS ETUDIANTS (version enseignant/admin/master) ***/
/****************************************************************/
2015-11-15 17:12:49 +00:00
/*
*
* [ 1 ] Toutes les notes d ' un enseignant
*
*/
2016-01-04 14:53:28 +00:00
// retourne la classe correspondant à une valeur de note
function noteToClass ( $valeur , $base ){
$note = 20 * $valeur / $base ;
2016-01-08 01:16:27 +00:00
if ( $note < 8 ) return 'low' ; // Ne peut pas compenser
2016-01-04 16:48:13 +00:00
elseif ( $note < 10 ) return 'med' ; // Peut compenser
2016-01-04 14:53:28 +00:00
else return 'hig' ; // A la moyenne
}
2016-01-08 01:16:27 +00:00
// retourne la classe correspondant à une couleur pour un semestre
function noteToClassSemestre ( $valeur , $base , $compensable , $compensation ){
$class = null ;
$val = 20 * $valeur / $base ;
if ( $compensation ) // on a le semestre, avec aucun UE en dessous de 8 (ORANGE)
$class = 'med' ;
if ( ! $compensable ) // non compensable (au moins un UE en dessous de 8), on a pas le semestre (ROUGE)
$class = 'low' ;
// si rien de spécial, on définit avec les valeurs par défaut
if ( $class == null ){
if ( $val < 10 ) $class = 'low' ; // si en-dessous de 10, on a pas le semestre (ROUGE)
else $class = 'hig' ; // si sup/egal à 10, on a le semestre (VERT)
}
return $class ;
}
2015-11-26 20:54:01 +00:00
if ( ( permission ( 'master' ) || permission ( 'admin' )) && $etudiantOpt != null ){
2016-01-04 21:51:58 +00:00
include __ROOT__ . '/src/svg_v2.php' ;
2015-11-29 17:26:46 +00:00
2015-11-15 17:12:49 +00:00
$request = new stdClass (); $answer = new stdClass ();
2015-11-29 22:29:54 +00:00
$request -> level_1 = 'studentcase' ;
2015-11-15 17:12:49 +00:00
$request -> etudiant = $etudiantOpt ;
2015-11-30 09:23:34 +00:00
2015-12-06 19:08:28 +00:00
careerManager :: switch_level_1 ( $request , $answer );
2016-01-09 17:54:25 +00:00
2015-11-15 17:12:49 +00:00
if ( $answer -> request == 'success' ){ // si on a bien récupéré les UE/notes
////////////////////////////////////////////////////////////////////////////////
echo " <section name='studentcase' data-title='Dossier étudiant' class='basic'> " ;
2016-01-09 14:49:48 +00:00
2016-01-04 22:02:57 +00:00
// on récupère $semestreOpt original
$semestreOpt = $semestreOptBis ;
2016-01-03 11:26:45 +00:00
// selection du semestre par défaut
if ( $semestreOpt == null ) $semestreOpt = $answer -> parcours [ 0 ][ 'id' ];
2016-01-04 21:24:31 +00:00
$parcoursChart = array ();
/* ON CREE LE JEU DE DONNEES POUR LA GENERATION DU <SVG> */
foreach ( $answer -> parcours as $semestre ){
$index = count ( $parcoursChart );
$parcoursChart [ $index ] = array (
2016-01-08 01:16:27 +00:00
'id' => $semestre [ 'id' ],
'nom' => $semestre [ 'code' ] . ' ' . $semestre [ 'semestre' ],
'mention' => $semestre [ 'mention' ],
'moyenne' => $semestre [ 'moyenne' ],
'compensable' => $semestre [ 'compensable' ],
'compensation' => $semestre [ 'compensation' ]
2016-01-04 21:24:31 +00:00
);
// on spécifie les moyennes des UEs
$parcoursChart [ $index ][ 'UEs' ] = array ();
foreach ( $semestre [ 'UEs' ] as $UE ){
array_push ( $parcoursChart [ $index ][ 'UEs' ],
2016-01-08 23:41:35 +00:00
array ( 'id' => $UE [ 'id' ], 'moyenne' => $UE [ 'moyenne' ], 'capitalisation' => ! in_array ( $UE [ 'id' ], $semestre [ 'inactive' ]) )
2016-01-04 21:24:31 +00:00
);
}
}
/* ON GENERE LE <SVG> DU PARCOURS */
2016-01-03 11:26:45 +00:00
displayParcours ( $parcoursChart , $semestreOpt );
2015-11-15 17:12:49 +00:00
2016-01-09 14:49:48 +00:00
// echo "<br><div data-etu='".$etudiantOpt."' class='confirm active center' style='background-color:#fff'>Importer le dossier<input type='file' id='import_dossier'></div>";
2015-11-29 22:29:54 +00:00
// pour chaque semestres (tous si aucun semestreOpt, sinon uniquement le selectionné)
foreach ( $answer -> parcours as $semestre ){ if ( $semestreOpt == null || $semestreOpt == $semestre [ 'id' ] ){
foreach ( $semestre [ 'UEs' ] as $UE ){ // pour chaque UE
echo " <table class='basic col4'> " ;
2016-01-04 21:51:58 +00:00
echo " <thead id=' " . $UE [ 'id' ] . " '><tr><th colspan=5 style='font-size:1.5em; text-align:center;'> " . $UE [ 'nom' ] . ' - ' . $UE [ 'libelle' ] . '</th></tr>' ;
2015-11-29 22:29:54 +00:00
echo '</thead></table>' ;
foreach ( $UE [ 'modules' ] as $module ){ // pour chaque module
echo '<table class=basic><thead>' ;
2016-01-04 11:32:20 +00:00
echo " <tr><th colspan=5> " . $module [ 'nom' ] . " - " . $module [ 'libelle' ] . " <span class='unstressed' style='font-weight:normal'>(coeff. " . $module [ 'coefficient' ] . " )</span></th></tr></thead><tbody> " ;
2015-11-29 22:29:54 +00:00
foreach ( $module [ 'controles' ] as $controle ){ // pour chaque contrôle
echo '<tr>' ;
2016-01-04 17:41:48 +00:00
echo " <td><span class='link ctrl' data-ctrl=' " . $controle [ 'id' ] . " '> " . $controle [ 'libelle' ] . " </span></td> " ;
2015-11-29 22:29:54 +00:00
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>' ;
}
2016-01-04 14:53:28 +00:00
2015-11-30 09:23:34 +00:00
echo " <tr class='transparentbg noborder'> " ;
2016-01-04 14:53:28 +00:00
2016-01-04 11:32:20 +00:00
/* MOYENNE MODULE */
2015-11-30 09:23:34 +00:00
if ( is_bool ( $module [ 'moyenne' ]) ) // si aucune note pour ce controle on affiche 'Pas de note'
2016-01-08 22:34:17 +00:00
echo " <td colspan=1><span class='link inactive stressed' style='padding:.5em 1em; background:white;'>Pas de moyenne</span></td> " ;
2015-11-30 09:23:34 +00:00
else // si une note, alors on l'affiche
2016-01-08 22:34:17 +00:00
echo " <td colspan=1><span class='link inactive " . noteToClass ( $module [ 'moyenne' ][ 'moyenne' ], $module [ 'moyenne' ][ 'base' ]) . " ' style='padding:.5em 1em; background:white;'>Moyenne module: <strong> " . number_format ( $module [ 'moyenne' ][ 'moyenne' ], 2 ) . " <span class=unstressed>/</span> " . $module [ 'moyenne' ][ 'base' ] . " </span></strong></td> " ;
2016-01-04 11:32:20 +00:00
/* MOYENNE UE */
2016-01-08 22:34:17 +00:00
// si UE non inactif dans la capitalisation, on affiche
if ( ! in_array ( $UE [ 'id' ], $semestre [ 'inactive' ]) ){
if ( is_bool ( $UE [ 'moyenne' ]) ) // si aucune note pour cet UE on affiche 'Pas de moyenne'
echo " <td colspan=1><span class='link inactive stressed' style='padding:.5em 1em; background:white;'>Pas de moyenne</span></td> " ;
else // si un moyenne, alors on l'affiche
echo " <td colspan=1><span class='link inactive " . noteToClass ( $UE [ 'moyenne' ][ 'moyenne' ], $UE [ 'moyenne' ][ 'base' ]) . " ' style='padding:.5em 1em; background:white;'>Moyenne UE: <strong> " . number_format ( $UE [ 'moyenne' ][ 'moyenne' ], 2 ) . " <span class=unstressed>/</span> " . $UE [ 'moyenne' ][ 'base' ] . " </span></strong></td> " ;
// UE pas utilisé dans la capitalisation, on affiche pas
} else { // sert de lien pour l'activer dans la capitalisation
echo " <td colspan=1><span class='link capitalisation_ue' data-stre=' " . $semestre [ 'id' ] . " ' data-ue=' " . $UE [ 'id' ] . " ' data-etu=' " . $etudiantOpt . " ' style='padding:.5em 1em; background:white;'>Non pris en compte</span></strong></td> " ;
}
2016-01-04 11:32:20 +00:00
/* MOYENNE SEMESTRE */
if ( is_bool ( $semestre [ 'moyenne' ]) ) // si aucune note pour ce semestre on affiche 'Pas de moyenne'
2016-01-08 22:34:17 +00:00
echo " <td colspan=1><span class='link inactive stressed' style='padding:.5em 1em; background:white;'>Pas de moyenne</span></td> " ;
2016-01-04 11:32:20 +00:00
else // si un moyenne, alors on l'affiche
2016-01-08 22:34:17 +00:00
echo " <td colspan=1><span class='link inactive " . noteToClassSemestre ( $semestre [ 'moyenne' ][ 'moyenne' ], $semestre [ 'moyenne' ][ 'base' ], $semestre [ 'compensable' ], $semestre [ 'compensation' ]) . " ' style='padding:.5em 1em; background:white;'>Moyenne semestre: <strong> " . number_format ( $semestre [ 'moyenne' ][ 'moyenne' ], 2 ) . " <span class=unstressed>/</span> " . $semestre [ 'moyenne' ][ 'base' ] . " </span></strong></td> " ;
2016-01-04 11:32:20 +00:00
2015-11-30 09:23:34 +00:00
echo '</tr>' ;
2015-11-29 22:29:54 +00:00
echo '</tbody>' ;
2015-11-15 17:12:49 +00:00
}
2015-11-29 22:29:54 +00:00
echo '</table>' ;
2015-11-15 17:12:49 +00:00
}
2015-11-29 22:29:54 +00:00
}}
2015-11-15 17:12:49 +00:00
////////////////////////////////////////////////////////////////////////////////
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> " ;
}
2015-11-13 18:07:36 +00:00
?>