Modification page/modules affichage par semestre, par UE, par modules
This commit is contained in:
parent
499d17346c
commit
4d4f2aae45
|
@ -438,13 +438,23 @@ class DataBase{
|
||||||
/*** retourne les modules des semestres en cours ***/
|
/*** retourne les modules des semestres en cours ***/
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
public function getModulesByUEByYear($semestre_pair, $annee){ // ***OPTIONNEL*** semestre_pair
|
public function getModulesByUEByYear($semestre_pair, $annee){ // ***OPTIONNEL*** semestre_pair
|
||||||
// on récupère la liste des UEs
|
|
||||||
$UEList = ueRepo::forYear($semestre_pair, $annee);
|
|
||||||
|
|
||||||
foreach($UEList as $iter=>$UE) // pour chaque UE, on récupère la liste des UEs
|
debug();
|
||||||
$UEList[$iter]['modules'] = moduleRepo::forYear($UE['id'], $semestre_pair, $annee);
|
|
||||||
|
|
||||||
return $UEList;
|
// on récupère les semestres de cette année
|
||||||
|
$semestreList = semestreRepo::forYear($annee);
|
||||||
|
|
||||||
|
foreach($semestreList as $iter_s=>$a){
|
||||||
|
$semestreList[$iter_s]['UElist'] = ueRepo::forYear($semestreList[$iter_s]['id']);
|
||||||
|
|
||||||
|
foreach($semestreList[$iter_s]['UElist'] as $iter_u=>$b){
|
||||||
|
$semestreList[$iter_s]['UElist'][$iter_u]['modules'] = moduleRepo::forYear($semestreList[$iter_s]['UElist'][$iter_u]['id'], $semestreList[$iter_s]['id']);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return $semestreList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -112,14 +112,13 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
$anneeCheck = $nEmptyParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
$anneeCheck = $nEmptyParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
|
||||||
|
|
||||||
if( $anneeCheck ){ // si tout les paramètres sont bons
|
if( $anneeCheck ){ // si tout les paramètres sont bons
|
||||||
$UEList = DataBase::getInstance()->getModulesByUEByYear(null, $request->annee);
|
$semestreList = DataBase::getInstance()->getModulesByUEByYear(null, $request->annee);
|
||||||
// $UEList = DataBase::getInstance()->getModulesByUEByYear($_SESSION['semestre_pair'], $request->annee);
|
|
||||||
|
|
||||||
// STRUCTURE
|
// STRUCTURE
|
||||||
// tableau d'UES contenant un tableau de MODULES
|
// tableau d'UES contenant un tableau de MODULES
|
||||||
|
|
||||||
if( is_array($UEList) ){ // si on a bien un tableau
|
if( is_array($semestreList) ){ // si on a bien un tableau
|
||||||
$answer->UEs = $UEList; // on renvoie dans answer->ues
|
$answer->semestres = $semestreList; // on renvoie dans answer->ues
|
||||||
$answer->request = 'success'; // et on renvoie success
|
$answer->request = 'success'; // et on renvoie success
|
||||||
}else // sinon si c'est pas un tableau
|
}else // sinon si c'est pas un tableau
|
||||||
$answer->request = $UEList; // on retourne l'erreur
|
$answer->request = $UEList; // on retourne l'erreur
|
||||||
|
|
|
@ -105,17 +105,16 @@ class moduleRepo extends DBAccess{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LA LISTE DES MODULES D'UN UE D'UNE ANNEE COURANTE (SEMESTRES COURANTS)
|
/* RENVOIE LA LISTE DES MODULES D'UN UE D'UN SEMESTRE PARTICULIER
|
||||||
*
|
*
|
||||||
* @UEUID<int> l'UID d'un UE
|
* @UEUID<int> l'UID d'un UE
|
||||||
* @semestre_pair<Boolean> VRAI si le semestre est pair
|
* @semestre<int> l'UID du semestre en question
|
||||||
* @annee<int> l'année en cours
|
|
||||||
*
|
*
|
||||||
* @return modules<Array> retourne un tableau contenant les modules de l'utilisateur pour ce semestre
|
* @return modules<Array> retourne un tableau contenant les modules de l'utilisateur pour ce semestre
|
||||||
* @return existent<Boolean> FAUX si aucun module n'a été trouvé
|
* @return existent<Boolean> FAUX si aucun module n'a été trouvé
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function forYear($UEUID, $semestre_pair, $annee){
|
public static function forYear($UEUID, $semestre){
|
||||||
// on récupère les modules
|
// on récupère les modules
|
||||||
$getModulesForYear = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom, m.libelle ".
|
$getModulesForYear = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom, m.libelle ".
|
||||||
"FROM module as m, mcc_module as mcc_m, mcc_ue, semestre as s ".
|
"FROM module as m, mcc_module as mcc_m, mcc_ue, semestre as s ".
|
||||||
|
@ -124,10 +123,9 @@ class moduleRepo extends DBAccess{
|
||||||
"AND mcc_ue.id_semestre = s.id_semestre ".
|
"AND mcc_ue.id_semestre = s.id_semestre ".
|
||||||
|
|
||||||
"AND mcc_ue.id_ue = :UEUID ".
|
"AND mcc_ue.id_ue = :UEUID ".
|
||||||
"AND s.rang % 2 = :semestre_pair ".
|
"AND s.id_semestre = :semestre ".
|
||||||
"AND s.annee = :annee ".
|
|
||||||
"ORDER BY s.rang, m.nom, m.libelle");
|
"ORDER BY s.rang, m.nom, m.libelle");
|
||||||
$getModulesForYear->execute(array( ':UEUID' => $UEUID, ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee ));
|
$getModulesForYear->execute(array( ':UEUID' => $UEUID, ':semestre' => $semestre ));
|
||||||
|
|
||||||
return DataBase::delNumeric( $getModulesForYear->fetchAll() );
|
return DataBase::delNumeric( $getModulesForYear->fetchAll() );
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,6 +106,26 @@ class semestreRepo extends DBAccess{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* retourne la liste des semestres d'une année
|
||||||
|
*
|
||||||
|
* @annee<int> l'année en question
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return semestres<Array> retourne la liste des semestres de cette année
|
||||||
|
* @return FALSE<Boolean> retourne FALSE si aucun semestre ne correspond aux critères
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function forYear($annee){
|
||||||
|
$getSemestreList = DataBase::getPDO()->prepare("SELECT id_semestre as id, nom, rang, annee ".
|
||||||
|
"FROM semestre ".
|
||||||
|
"WHERE annee = :annee ".
|
||||||
|
"ORDER BY rang ASC");
|
||||||
|
$getSemestreList->execute(array( ':annee' => $annee ));
|
||||||
|
|
||||||
|
return DataBase::delNumeric( $getSemestreList->fetchAll() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -104,31 +104,26 @@ class ueRepo extends DBAccess{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* RENVOIE LA LISTE DES UEs D'UNE ANNEE COURANTE (SEMESTRES COURANTS)
|
/* RENVOIE LA LISTE DES UEs D'UN SEMESTRE D'UNE ANNEE COURANTE
|
||||||
*
|
*
|
||||||
* @semestre_pair<Boolean> VRAI si le semestre est pair
|
* @semestre<int> l'UID du semestre en question
|
||||||
* @annee<int> l'année en cours
|
|
||||||
*
|
*
|
||||||
* @return UEs<Array> retourne un tableau contenant les UEs des semestres en cours
|
* @return UEs<Array> retourne un tableau contenant les UEs du semestre en question
|
||||||
* @return existent<Boolean> FAUX si aucun UE n'a été trouvé
|
* @return existent<Boolean> FAUX si aucun UE n'a été trouvé
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function forYear($semestre_pair, $annee){
|
public static function forYear($semestre){
|
||||||
$semestrePair0 = '0'; $semestrePair1 = '1';
|
|
||||||
if( is_bool($semestre_pair) ){ $semestrePair0 = $semestre_pair; $semestrePair1 = $semestre_pair; }
|
|
||||||
|
|
||||||
// on récupère les modules
|
// on récupère les modules
|
||||||
$getUEsForYear = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.id_semestre, s.nom as semestre, s.annee, ue.nom, ue.libelle ".
|
$getUEList = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.id_semestre, s.nom as semestre, s.annee, ue.nom, ue.libelle ".
|
||||||
"FROM ue, mcc_ue, semestre as s ".
|
"FROM ue, mcc_ue, semestre as s ".
|
||||||
"WHERE ue.id_ue = mcc_ue.id_ue ".
|
"WHERE ue.id_ue = mcc_ue.id_ue ".
|
||||||
"AND mcc_ue.id_semestre = s.id_semestre ".
|
"AND mcc_ue.id_semestre = s.id_semestre ".
|
||||||
|
|
||||||
"AND (s.rang % 2 = :semestre_pair0 OR s.rang % 2 = :semestre_pair1) ".
|
"AND s.id_semestre = :semestre ".
|
||||||
"AND s.annee = :annee ".
|
|
||||||
"ORDER BY s.rang, ue.nom, ue.libelle");
|
"ORDER BY s.rang, ue.nom, ue.libelle");
|
||||||
$getUEsForYear->execute(array( ':semestre_pair0' => $semestrePair0, ':semestre_pair1' => $semestrePair1, ':annee' => $annee ));
|
$getUEList->execute(array( ':semestre' => $semestre ));
|
||||||
|
|
||||||
return DataBase::delNumeric( $getUEsForYear->fetchAll() );
|
return DataBase::delNumeric( $getUEList->fetchAll() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -54,15 +54,15 @@
|
||||||
error_reporting(-1);
|
error_reporting(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function distinctArray($inArray){
|
// function distinctArray($inArray){
|
||||||
$outArray = array();
|
// $outArray = array();
|
||||||
|
|
||||||
foreach($inArray as $value) // pour chaque élément du tableau d'entrée, on l'ajoute uniquement si aucune entrée du tableau de sortie n'a la même valeur
|
// foreach($inArray as $value) // pour chaque élément du tableau d'entrée, on l'ajoute uniquement si aucune entrée du tableau de sortie n'a la même valeur
|
||||||
if( !in_array($value, $outArray) )
|
// if( !in_array($value, $outArray) )
|
||||||
array_push($outArray, $value);
|
// array_push($outArray, $value);
|
||||||
|
|
||||||
return $outArray;
|
// return $outArray;
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
function secure_sha1($text){
|
function secure_sha1($text){
|
||||||
|
|
|
@ -5,14 +5,21 @@
|
||||||
/********************************/
|
/********************************/
|
||||||
/* GESTION DE L'AFFINAGE PAR UE */
|
/* GESTION DE L'AFFINAGE PAR UE */
|
||||||
/********************************/
|
/********************************/
|
||||||
var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=UE]");
|
var partList = document.querySelectorAll("#CONTAINER > section[name] > table.partlist[name=UE], #CONTAINER > section[name] > table.partlist[name=semestre]");
|
||||||
|
|
||||||
for( var i = 0 ; i < partList.length ; i++ ){
|
for( var i = 0 ; i < partList.length ; i++ ){
|
||||||
|
|
||||||
partList[i].addEventListener('click', function(e){
|
partList[i].addEventListener('click', function(e){
|
||||||
var tableauParent = e.target.parentNode.parentNode.parentNode;
|
var tableauParent = e.target.parentNode.parentNode.parentNode;
|
||||||
|
|
||||||
if( tableauParent.tagName == 'TABLE' && tableauParent.getAttribute('name') == 'UE' && e.target.dataset.hasOwnProperty('value') ){
|
if( tableauParent.tagName == 'TABLE' && e.target.dataset.hasOwnProperty('value') ){
|
||||||
|
|
||||||
|
/* SI c'est une affinage par SEMESTRE */
|
||||||
|
if( tableauParent.getAttribute('name') == 'semestre' )
|
||||||
|
pageM.vars[1] = 's:'+e.target.dataset.value;
|
||||||
|
|
||||||
|
/* SI c'est un affinage par UE */
|
||||||
|
if( tableauParent.getAttribute('name') == 'UE' )
|
||||||
pageM.vars[1] = 'u:'+e.target.dataset.value;
|
pageM.vars[1] = 'u:'+e.target.dataset.value;
|
||||||
|
|
||||||
// si on a '*' comme valeur, on l'enlève
|
// si on a '*' comme valeur, on l'enlève
|
||||||
|
|
|
@ -8,16 +8,21 @@ require_once __ROOT__.'/manager/modules.php';
|
||||||
|
|
||||||
// on initialise les paramètres optionnels
|
// on initialise les paramètres optionnels
|
||||||
$ueOpt = null;
|
$ueOpt = null;
|
||||||
|
$semestreOpt = null;
|
||||||
|
|
||||||
// on cherche dans toutes les variables _get si on trouve des paramètres
|
// on cherche dans toutes les variables _get si on trouve des paramètres
|
||||||
foreach($_POST as $k=>$v){
|
foreach($_POST as $k=>$v){
|
||||||
|
|
||||||
if( preg_match('/^u:(.+)$/', $k, $m) ) // s:nomSemestre
|
if( preg_match('/^s:(.+)$/', $k, $m) ) // s:nomSemestre
|
||||||
|
$semestreOpt = $m[1];
|
||||||
|
|
||||||
|
if( preg_match('/^u:(.+)$/', $k, $m) ) // u:nomUE
|
||||||
$ueOpt = $m[1];
|
$ueOpt = $m[1];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$ueOpt = ($ueOpt == null || $ueOpt == '*') ? null : $ueOpt;
|
$ueOpt = ($ueOpt == null || $ueOpt == '*') ? null : $ueOpt;
|
||||||
|
$semestreOpt = ($semestreOpt == null || $semestreOpt == '*') ? null : $semestreOpt;
|
||||||
|
|
||||||
|
|
||||||
/****************************************
|
/****************************************
|
||||||
|
@ -183,12 +188,34 @@ if( permission('admin') ){ // si l'utilisateur est un admin
|
||||||
echo "<section name='allmodules' data-title='Tous les modules' class='basic'>";
|
echo "<section name='allmodules' data-title='Tous les modules' class='basic'>";
|
||||||
|
|
||||||
|
|
||||||
/* ON RECUPERE UNE LISTE UNIQUE DES UEs */
|
/* ON RECUPERE UNE LISTE UNIQUE DES SEMESTRES */
|
||||||
|
$ListeNomsSemestres = array();
|
||||||
$ListeNomsUE = array();
|
$ListeNomsUE = array();
|
||||||
foreach($answer->UEs as $UE)
|
foreach($answer->semestres as $semestre){
|
||||||
|
array_push( $ListeNomsSemestres, $semestre['nom'] );
|
||||||
|
|
||||||
|
/* ON RECUPERE UNE LISTE UNIQUE DES UEs */
|
||||||
|
foreach($semestre['UElist'] as $UE)
|
||||||
array_push( $ListeNomsUE, $UE['nom'] );
|
array_push( $ListeNomsUE, $UE['nom'] );
|
||||||
|
}
|
||||||
|
|
||||||
|
$ListeNomsSemestres = array_unique($ListeNomsSemestres);
|
||||||
$ListeNomsUE = array_unique($ListeNomsUE);
|
$ListeNomsUE = array_unique($ListeNomsUE);
|
||||||
|
|
||||||
|
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>";
|
||||||
|
|
||||||
|
foreach($ListeNomsSemestres as $NomSemestre)
|
||||||
|
if( $NomSemestre == $semestreOpt ) // si c'est le semestre séléctionné
|
||||||
|
echo "<td data-value='".$NomSemestre."' class='active'>".$NomSemestre.'</td>';
|
||||||
|
else // sinon on affiche normalement
|
||||||
|
echo "<td data-value='".$NomSemestre."'>".$NomSemestre.'</td>';
|
||||||
|
echo "</tr></tbody></table>";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
echo "<table class='partlist' name='UE'><tbody><tr>";
|
echo "<table class='partlist' name='UE'><tbody><tr>";
|
||||||
if( $ueOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
|
if( $ueOpt == null ) echo "<td data-value='*' class='active'>Tous</td>";
|
||||||
|
@ -202,14 +229,19 @@ if( permission('admin') ){ // si l'utilisateur est un admin
|
||||||
echo "</tr></tbody></table>";
|
echo "</tr></tbody></table>";
|
||||||
|
|
||||||
|
|
||||||
foreach($answer->UEs as $UE){
|
|
||||||
|
|
||||||
if( $ueOpt == null || $UE['nom'] == $ueOpt ){
|
foreach($answer->semestres as $semestre){
|
||||||
|
|
||||||
|
if( $semestreOpt == null || $semestre['nom'] == $semestreOpt ){ // on affiche les semestres en fonction de l'affinage
|
||||||
|
|
||||||
|
foreach($semestre['UElist'] as $UE){
|
||||||
|
|
||||||
|
if( $ueOpt == null || $UE['nom'] == $ueOpt ){ // on affiche les UEs en fonction de l'affinage
|
||||||
|
|
||||||
echo "<table class='basic'>";
|
echo "<table class='basic'>";
|
||||||
echo "<thead class='normal'>";
|
echo "<thead class='normal'>";
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
echo '<th colspan=5><strong>'.$UE['semestre'].'</strong> - '.$UE['nom'].' - '.$UE['libelle'].'</th>';
|
echo '<th colspan=5><strong>'.$semestre['nom'].'</strong> - '.$UE['nom'].' - '.$UE['libelle'].'</th>';
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
echo '</thead>';
|
echo '</thead>';
|
||||||
echo '<tbody>';
|
echo '<tbody>';
|
||||||
|
@ -225,11 +257,52 @@ if( permission('admin') ){ // si l'utilisateur est un admin
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
echo '</section>';
|
echo '</section>';
|
||||||
}else
|
}else
|
||||||
echo "<section name='allmodules' data-title='Tous les modules' class='basic'><table class='basic'><tbody><tr><td>Aucun module trouvé</td></tr></tbody></table></section>";
|
echo "<section name='allmodules' data-title='Tous les modules' class='basic'><table class='basic'><tbody><tr><td>Aucun module trouvé</td></tr></tbody></table></section>";
|
||||||
|
|
||||||
} ?>
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***************************************/
|
||||||
|
/*** GESTION DES MCC (version admin) ***/
|
||||||
|
/***************************************/
|
||||||
|
if( permission('admin') ){ // si l'utilisateur est un admin
|
||||||
|
|
||||||
|
$request = new stdClass(); $answer = new stdClass();
|
||||||
|
|
||||||
|
$request->level_1 = 'getMCC';
|
||||||
|
$request->annee = $_SESSION['annee'];
|
||||||
|
|
||||||
|
modules_switch_level_1($request, $answer);
|
||||||
|
|
||||||
|
var_dump( $answer );
|
||||||
|
|
||||||
|
if( $answer->request == 'success' ){ // si on a bien récupéré les membres du groupe
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
echo "<section name='managemcc' data-title='MCC' class='basic'>";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}else
|
||||||
|
echo "<section name='managemcc' data-title='MCC' class='basic'><table class='basic'><tbody><tr><td>Aucun module trouvé</td></tr></tbody></table></section>";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue