";
foreach($answer->UEs as $UE)
if( $UE['nom'] == $ueOpt ) // si c'est le semestre séléctionné
echo "
".$UE['nom'].'
';
else // sinon on affiche normalement
echo "
".$UE['nom'].'
';
echo "
";
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 '';
foreach($UE['modules'] as $module){ // pour chaque module
echo '
";
}
/******************************************/
/*** 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->annee = $_SESSION['annee'];
careerManager::switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si on a bien récupéré les UE/notes
////////////////////////////////////////////////////////////////////////////////
echo "";
/* 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) )
$formationOpt = $verificationUIDFormations[0];
/**************************/
/* AFFINAGE PAR FORMATION */
/**************************/
echo "
";
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 "
".$semestre['formation'].'
';
else // sinon on affiche normalement
echo "
".$semestre['formation'].'
';
// on ajoute la formation à la liste pour ne pas la répéter
array_push($ListeUIDFormations, $semestre['id_formation']);
}}
echo "
";
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
echo "
";
if( $semestreOpt == null ) echo "
Tous
";
else echo "
Tous
";
/* 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 "
".$semestre['nom'].'
';
else // sinon on affiche normalement
echo "
".$semestre['nom'].'
';
// on ajoute le semestre à la liste pour ne pas le répéter
array_push($ListeUIDSemestres, $semestre['id']);
}}
echo "
";
/*******************/
/* AFFINAGE PAR UE */
/*******************/
echo "
";
if( $ueOpt == null ) echo "
Tous
";
else echo "
Tous
";
/* 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 "
".$UE['nom'].'
';
else // sinon on affiche normalement
echo "
".$UE['nom'].'
';
// on ajoute l'UE à la liste pour ne pas le répéter
array_push($ListeUIDUE, $UE['id']);
}}
}}
echo "
";
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 "
';
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 '
';
echo "
".$controle['libelle']."
";
echo "
".$module['nom']." - ".$module['libelle']."
";
echo "
".$UE['nom']." - ".$UE['libelle']."
";
if( $controle['moyenne'] == null ) // si il y a au moins une note pour ce contrôle
echo '
Pas noté
';
else
echo '
Moyenne de '.number_format($controle['moyenne'], 2).' / '.$controle['base'].'
";
/* [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 '
Pas noté
';
else
echo '
Moyenne de '.number_format($answer->controle['moyenne'], 2).' / '.$answer->controle['base'].'
';
/* [2] Affichage par élèves
====================================================================================*/
}else{
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
echo '
Pas noté
';
else
echo '
Moyenne de '.number_format($answer->controle['moyenne'], 2).' / '.$answer->controle['base'].'
';
echo "";
/* [1] Affichage par groupes
====================================================================================*/
if( $groupeOpt == null ){
foreach($answer->controle['grouplist'] as $groupe){ // on affiche la liste des groupes avec leurs stats
echo "
";
echo "
".$groupe['nom']."
";
if( isset($groupe['nb_notes']) ){ // si ce groupe a des notes
if( $groupe['nb_notes'] == 1 ) echo "
".$groupe['nb_notes']." note
";
else echo "
".$groupe['nb_notes']." notes
";
echo "
Allant de ".number_format($groupe['min'], 2)." à ".number_format($groupe['max'], 2)."
";
echo "
Moyenne de ".number_format($groupe['moyenne'], 2)." / ".$answer->controle['base']."
";
}else{ // si le groupe n'a aucune note
echo "
Pas de note
";
echo "
";
echo "
";
}
echo "
";
}
/* [2] Affichage par élèves
====================================================================================*/
}elseif( isset($answer->controle['userlist']) && is_array($answer->controle['userlist']) && count($answer->controle['userlist']) > 0 ){
// var_dump($answer->controle['userlist']);
foreach($answer->controle['userlist'] as $user){ // on affiche la liste des élèves avec leurs notes
echo "
";
echo "
".$user['identifiant']."
";
echo "
".$user['groupe']."
";
if( $user['note'] != null ) // si on a une note
echo "
";
if( $user['note'] != null ) // s'il a déjà une note, on la met par défaut
echo "";
else // sinon on laisse le champ vide
echo "";
echo "
enregistrer
";
echo "
";
echo "
";
}
echo "
";
echo "
";
echo "
";
echo "
";
echo "
tout enregistrer
";
echo "
";
}
echo '
';
echo "";
}else
echo "
Aucun contrôle trouvé
";
}
/********************************************/
/*** 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'];
careerManager::switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si on a bien récupéré les UE/notes
////////////////////////////////////////////////////////////////////////////////
echo "";
/* 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) )
$formationOpt = $verificationUIDFormations[0];
/**************************/
/* AFFINAGE PAR FORMATION */
/**************************/
echo "
";
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 "
".$semestre['formation'].'
';
else // sinon on affiche normalement
echo "
".$semestre['formation'].'
';
// on ajoute la formation à la liste pour ne pas la répéter
array_push($ListeUIDFormations, $semestre['id_formation']);
}}
echo "
";
/*************************/
/* AFFINAGE PAR SEMESTRE */
/*************************/
echo "
";
if( $semestreOpt == null ) echo "
Tous
";
else echo "
Tous
";
/* 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 "
".$semestre['nom'].'
';
else // sinon on affiche normalement
echo "
".$semestre['nom'].'
';
// on ajoute le semestre à la liste pour ne pas le répéter
array_push($ListeUIDSemestres, $semestre['id']);
}}
echo "
";
/*******************/
/* AFFINAGE PAR UE */
/*******************/
echo "
";
if( $ueOpt == null ) echo "
Tous
";
else echo "
Tous
";
/* 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 "
".$UE['nom'].'
';
else // sinon on affiche normalement
echo "
".$UE['nom'].'
';
// on ajoute l'UE à la liste pour ne pas le répéter
array_push($ListeUIDUE, $UE['id']);
}}
}}
echo "
";
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 "
';
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 '
';
echo "
".$controle['libelle']."
";
echo "
".$module['nom']." - ".$module['libelle']."
";
echo "
".$UE['nom']." - ".$UE['libelle']."
";
if( $controle['moyenne'] == null ) // si il y a au moins une note pour ce contrôle
echo '
Pas noté
';
else
echo '
Moyenne de '.number_format($controle['moyenne'], 2).' / '.$controle['base'].'
";
/* [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 '
Pas noté
';
else
echo '
Moyenne de '.number_format($answer->controle['moyenne'], 2).' / '.$answer->controle['base'].'
';
/* [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 '
Pas noté
';
else
echo '
Moyenne de '.number_format($answer->controle['moyenne'], 2).' / '.$answer->controle['base'].'
';
echo "";
/* [1] Affichage par groupes
====================================================================================*/
if( $groupeOpt == null ){
foreach($answer->controle['grouplist'] as $groupe){ // on affiche la liste des groupes avec leurs stats
echo "
";
echo "
".$groupe['nom']."
";
if( isset($groupe['nb_notes']) ){ // si ce groupe a des notes
if( $groupe['nb_notes'] == 1 ) echo "
".$groupe['nb_notes']." note
";
else echo "
".$groupe['nb_notes']." notes
";
echo "
Allant de ".number_format($groupe['min'], 2)." à ".number_format($groupe['max'], 2)."
";
echo "
Moyenne de ".number_format($groupe['moyenne'], 2)." / ".$answer->controle['base']."
";
}else{ // si le groupe n'a aucune note
echo "
Pas de note
";
echo "
";
echo "
";
}
echo "
";
}
/* [2] Affichage par élèves
====================================================================================*/
}else{
foreach($answer->controle['userlist'] as $user){ // on affiche la liste des élèves avec leurs notes
echo "
";
echo "
".$user['identifiant']."
";
echo "
".$user['groupe']."
";
if( $user['note'] != null ) // si on a une note
echo "
";
if( $user['note'] != null ) // s'il a déjà une note, on la met par défaut
echo "";
else // sinon on laisse le champ vide
echo "";
echo "
enregistrer
";
echo "
";
}else // si 'master'
echo "
";
echo "
";
}
echo "
";
echo "
";
echo "
";
echo "
";
echo "
tout enregistrer
";
echo "
";
}
echo '
';
echo "";
}else
echo "
Aucun contrôle trouvé
";
}
/****************************************************************/
/****************************************************************/
/*** IMPORT/EXPORT APPRÉCIATIONS JURY ***/
/*
*
* [1] Export modèle pour semestre
* [2] Import pour semestre
*
*/
if( permission('master') || permission('admin') ){
echo "";
/* [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 "
";
$anneesListe = array();
/**********************/
/* AFFINAGE PAR ANNEE */
/**********************/
echo "Exportation des feuilles jury d'un semestre ";
echo "(Format compatible Microsoft Office, Open Office et Libre Office) ";
/* AFFINAGE POUR LES 5 ANNEES SUIVANTES */
echo "
";
/*************************/
/* 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 "
";
/* 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 "".$semestre['formation']." - ".$semestre['nom'].'';
else // sinon on affiche normalement
echo "".$semestre['formation']." - ".$semestre['nom'].'';
}}
}}
echo "
";
if( $count == 0 ) // si on a trouvé aucun semestre
echo "Aucun semestre pour cette année
";
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 "".$semestre['nb_etudiants']." étudiants
";
}}}}
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 "".$nbTotal." étudiants
";
}
}
echo "
Télécharger le fichier
";
echo "
";
// l'admin peut importer un MCC
if( permission('admin') ){
/* [2] Importation
==========================================*/
$currentYear = getCurrentYear();
// 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 "
";
echo "Importation des mentions jury d'un semestre ";
echo "(Fichier .xlsx suivant le modèle : modèle de fichier) ";
/**********************/
/* AFFINAGE PAR ANNEE */
/**********************/
/* AFFINAGE POUR LES 5 ANNEES SUIVANTES */
echo " ";
/*************************/
/* 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 "
";
foreach($annee['semestres'] as $semestre){ if( in_array($semestre['id'], $semestresListe) ){
if( $semestre['id'] == $semestreOpt ) // si c'est le semestre séléctionné
echo "".$semestre['formation']." - ".$semestre['nom'].'';
else // sinon on affiche normalement
echo "".$semestre['formation']." - ".$semestre['nom'].'';
}}
echo "
";
}}
if( $count == 0 )
echo "Créer un semestre
";
if( $semestreOpt != null )
echo "
Importer les décisions du jury
";
echo "
";
}else
echo "
level_1 = 'studentcase';
$request->etudiant = $etudiantOpt;
careerManager::switch_level_1($request, $answer);
if( $answer->request == 'success' ){ // si on a bien récupéré les UE/notes
////////////////////////////////////////////////////////////////////////////////
echo "";
// selection du semestre par défaut
if( $semestreOpt == null ) $semestreOpt = $answer->parcours[0]['id'];
$parcoursChart = array();
foreach($answer->parcours as $semestre) array_push($parcoursChart, array('id'=>$semestre['id'], 'nom' => $semestre['formation'].' '.$semestre['semestre'], 'mention' => $semestre['mention']) );
displayParcours( $parcoursChart, $semestreOpt);
// 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 "
";
echo "
".$UE['nom'].' - '.$UE['libelle'].'
';
echo '
';
foreach($UE['modules'] as $module){ // pour chaque module
echo '
';
echo '
'.$module['nom'].' - '.$module['libelle'].'
';
foreach($module['controles'] as $controle){ // pour chaque contrôle
echo '
';
echo '
'.$controle['libelle'].'
';
if( count($controle['notes']) == 0 ) // si aucune note pour ce controle on affiche 'Pas de note'
echo '