317 lines
12 KiB
PHP
Executable File
317 lines
12 KiB
PHP
Executable File
<?php define('__ROOT__', dirname(dirname(__FILE__)) );
|
|
require_once __ROOT__.'/manager/security.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*** GESTION DES PARAMETRES OPTIONNELS ***/
|
|
|
|
// on initialise les paramètres optionnels
|
|
$ueOpt = null;
|
|
$semestreOpt = null;
|
|
$formationOpt = null;
|
|
$anneeOpt = null;
|
|
|
|
// on cherche dans toutes les variables _get si on trouve des paramètres
|
|
foreach($_POST as $k=>$v){
|
|
|
|
if( preg_match('/^u:(.+)$/', $k, $m) ) // u:nomUe
|
|
$ueOpt = $m[1];
|
|
|
|
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
|
|
$semestreOpt = $m[1];
|
|
|
|
if( preg_match('/^f:(.+)$/', $k, $m) ) // f:codeFormation
|
|
$formationOpt = $m[1];
|
|
|
|
if( preg_match('/^a:(.+)$/', $k, $m) ) // a:codeFormation
|
|
$anneeOpt = $m[1];
|
|
|
|
}
|
|
|
|
$ueOpt = ($ueOpt == null || $ueOpt == '*') ? null : $ueOpt;
|
|
$semestreOpt = ($semestreOpt == null || $semestreOpt == '*') ? null : $semestreOpt;
|
|
$formationOpt = ($formationOpt == null || $formationOpt == '*') ? null : $formationOpt;
|
|
$anneeOpt = ($anneeOpt == null || $anneeOpt == '*') ? null : $anneeOpt;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***************/
|
|
/*** PROFILE ***/
|
|
/***************/
|
|
if( connected() ){ // si l'utilisateur est connecté
|
|
echo "<section name='myprofile' data-title='Profil'>";
|
|
echo 'profil';
|
|
echo '</section>';
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*****************************/
|
|
/*** ATTRIBUTION DES RÔLES ***/
|
|
/*****************************/
|
|
if( permission('admin') ){
|
|
// on récupère tous les modules de l'année pour l'affinage
|
|
$rAffinage = new stdClass(); $aAffinage = new stdClass();
|
|
$rAffinage->level_1 = 'getByYear';
|
|
$rAffinage->annee = (String) $_SESSION['annee'];
|
|
|
|
modulesManager::switch_level_1($rAffinage, $aAffinage);
|
|
|
|
|
|
// création de la requête d'affichage des utilisateurs à rôles
|
|
$request = new stdClass(); $answer = new stdClass();
|
|
$request->level_1 = 'getListeEnseignantsModules';
|
|
|
|
// gestion de la requête
|
|
userManager::switch_level_1($request, $answer);
|
|
|
|
if( $answer->request == 'success' && $aAffinage->request == 'success' ){ // si aucune erreur
|
|
$allSemestres = $aAffinage->semestres; // liste du programme de l'année courante
|
|
|
|
echo "<section name='attributionrole' data-title='Rôles' class='basic' >";
|
|
|
|
|
|
|
|
|
|
/* 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($allSemestres 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 "<table class='partlist' name='formation'><tbody><tr>";
|
|
foreach($allSemestres 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($allSemestres 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($allSemestres 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>";
|
|
|
|
|
|
/**************************************************************/
|
|
/* ON DEFINIT LA LISTE DES MODULES EN FONCTION DE L'AFFINNAGE */
|
|
/**************************************************************/
|
|
$completeModuleList = array(); // contiendra la liste des modules
|
|
// on affiche les semestres en fonction de l'affinage
|
|
foreach($allSemestres as $semestre){ if( ($semestreOpt == null || $semestre['id'] == $semestreOpt) && ($formationOpt == null || $semestre['id_formation'] == $formationOpt) ){ // on affiche les semestres en fonction de l'affinage
|
|
// on afficha les UE en fonction de l'affinage
|
|
foreach($semestre['UElist'] as $UE){ if( $ueOpt == null || $UE['id'] == $ueOpt ){
|
|
// on définit la liste des modules en fonction de ça
|
|
foreach($UE['modules'] as $mod)
|
|
array_push( $completeModuleList, $mod );
|
|
}}
|
|
|
|
}}
|
|
|
|
|
|
|
|
echo "<table class='basic col5'><tbody>";
|
|
foreach($answer->userlist as $user){
|
|
echo "<tr>";
|
|
echo "<td><span class='link'>".$user['id']."</span></td>";
|
|
echo "<td>".$user['prenom']."</td>";
|
|
echo "<td>".$user['nom']."</td>";
|
|
|
|
// si l'utilisateur est admin
|
|
if( in_array('admin', $user['role']) )
|
|
echo "<td><input data-usr='".$user['id']."' class='check_admin' type='checkbox' id='".$user['id']."administrateur' checked><label for='".$user['id']."administrateur'></label> administrateur</td>";
|
|
else
|
|
echo "<td><input data-usr='".$user['id']."' class='check_admin' type='checkbox' id='".$user['id']."administrateur'><label for='".$user['id']."administrateur'></label> administrateur</td>";
|
|
|
|
// si l'utilisateur est référent
|
|
if( in_array('master', $user['role']) )
|
|
echo "<td><input data-usr='".$user['id']."' class='check_master' type='checkbox' id='".$user['id']."referent' checked><label for='".$user['id']."referent'></label> référent</td>";
|
|
else
|
|
echo "<td><input data-usr='".$user['id']."' class='check_master' type='checkbox' id='".$user['id']."referent'><label for='".$user['id']."referent'></label> référent</td>";
|
|
|
|
echo "</tr>";
|
|
|
|
|
|
|
|
|
|
/* LISTE DES MODULES CORRIGEABLES */
|
|
$userModulesUID = array();
|
|
|
|
echo "<tr class='transparentbg noborder'><td></td><td class='nopadding' colspan=4>";
|
|
echo "<table class='basic col4'><tbody>";
|
|
|
|
if( $user['semestreList'] != null ){
|
|
|
|
foreach($user['semestreList'] as $semestre){
|
|
foreach($semestre['UElist'] as $ue){
|
|
foreach($ue['modules'] as $module){
|
|
echo "<tr>";
|
|
echo "<td>".$module['nom']." - ".$module['libelle']."</td>";
|
|
echo "<td>".$ue['nom']." - ".$ue['libelle']."</td>";
|
|
echo "<td>".$semestre['formation']." - ".$semestre['nom']."</td>";
|
|
echo "<td><div class='confirm pamp active enseignement' data-usr='".$user['id']."' data-mccmod='".$module['id_mcc_module']."'>Supprimer</div></td>";
|
|
echo "</tr>";
|
|
echo "<tr ><td class='nopadding' colspan=4>";
|
|
foreach($module['groupes'] as $groupe){
|
|
if( $groupe['enseigne'] === true )
|
|
echo "  <input data-usr='".$user['id']."' data-grp='".$groupe['id']."' data-mccmod='".$module['id_mcc_module']."' class='del_module' type='checkbox' id='".$user['id']."correcteur".$module['id']."groupe".$groupe['id']."' checked><label for='".$user['id']."correcteur".$module['id']."groupe".$groupe['id']."'></label> ".$groupe['nom']." / ";
|
|
else
|
|
echo "  <input data-usr='".$user['id']."' data-grp='".$groupe['id']."' data-mccmod='".$module['id_mcc_module']."' class='del_module' type='checkbox' id='".$user['id']."correcteur".$module['id']."groupe".$groupe['id']."' ><label for='".$user['id']."correcteur".$module['id']."groupe".$groupe['id']."'></label> ".$groupe['nom']." / ";
|
|
}
|
|
echo "</td>";
|
|
|
|
array_push($userModulesUID, $module['id']);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/* AJOUT DE MODULES */
|
|
echo "<tr class='grayscale'>";
|
|
echo "<td><select name='modules'>";
|
|
if( count($completeModuleList) > 0 ){ // si au moins 1 module
|
|
foreach($completeModuleList as $MOD){ if( !in_array($MOD['id'], $userModulesUID) ){
|
|
echo "<option value='".$MOD['id_mcc_module']."'>".$MOD['nom']." - ".$MOD['libelle']."</option>";
|
|
}}
|
|
}else // si aucun module
|
|
echo "<option>Aucun module trouvé</option>";
|
|
echo "</select></td>";
|
|
echo "<td><div data-usr='".$user['id']."' class='confirm active set_correcteur'>Définir comme correcteur</div></td>";
|
|
echo "<td></td>";
|
|
echo "<td></td>";
|
|
echo "</tr>";
|
|
|
|
echo "</tbody></table></tr>";
|
|
|
|
|
|
|
|
}
|
|
echo "</tbody></table>";
|
|
|
|
echo "</section>";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/***********************/
|
|
/*** CHANGER L'ANNEE ***/
|
|
/***********************/
|
|
if( permission('master') || permission('admin') ){
|
|
|
|
$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 "<section name='changeyear' data-title='".anneeScolaire($_SESSION['annee'])."'>";
|
|
echo "<div class='p center'>";
|
|
|
|
echo "Changement de l'année de visualisation<br>";
|
|
echo "<span style='font-size:.8em;'>(uniquement les années référencées dans la base)</span><br>";
|
|
|
|
$anneesListe = array();
|
|
/* CHOIX DANS LES ANNEES EXISTANTES */
|
|
echo "<select id='yeartochange'>";
|
|
foreach($answer->yearList as $annee){ if( !in_array($annee['annee'], $anneesListe) ){ // pour éviter les doublons
|
|
if( $_SESSION['annee'] == $annee['annee'] ) // on préselectionne l'année de visualisation en cours
|
|
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>";
|
|
|
|
echo "<div id='change_year' class='confirm active center'>Changer l'année</div>";
|
|
|
|
|
|
echo "</div>";
|
|
echo "</section>";
|
|
}
|
|
|
|
} |