Affichage des @modules par UE par étudiant (section [MODULES/MES MODULES])

This commit is contained in:
xdrm-brackets 2015-11-03 23:20:54 +01:00
parent 802c4061e7
commit eb29d683ee
5 changed files with 162 additions and 17 deletions

View File

@ -127,3 +127,23 @@ table.basic:nth-child(4n+3) tr:hover td{ background-color: rgba(45, 204, 112, 1)
/*********************/
/*** LIENS BOUTONS ***/
/*********************/
span.link{
/* position */
padding: .3em .8em;
/* border */
border-radius: 5px;
border: 1px solid #ddd;
box-shadow: inset 0 0 1px #f5f5f5;
/* background */
background: #eee;
/* foreground */
color: #333;
/* extra */
cursor: pointer;
}
span.link:hover{ color: #000; }

View File

@ -324,6 +324,96 @@ class DataBase{
return 'error';
}
/**************************************************/
/*** retourne les modules d'un étudiant par UEs ***/
/**************************************************/
public function getModulesByUEByEtudiant($etudiant, $semestre, $annee){
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
$getSemestreUID = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee");
$getSemestreUID->execute(array(
':rang' => $semestre,
':annee' => $annee
));
// si on trouve, on le définit, sinon on retourne "unknown_group"
if( $semestreUID = $getSemestreUID->fetch()['id'] )
$semestreUID = (int) $semestreUID;
else
return 'unknown_semestre';
/*** on cherche un utilisateur avec cet identifiant ***/
$getEtudiantUID = $this->pdo->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :etudiant");
$getEtudiantUID->execute(array(
':etudiant' => $etudiant
));
// si on trouve, on le définit, sinon on retourne "unknown_user"
if( $etudiantUID = $getEtudiantUID->fetch()['id'] )
$etudiantUID = $etudiantUID;
else
return 'unknown_user';
/*** on cherche le groupe de cet utilisateur ***/
$getGroupeUID = $this->pdo->prepare("SELECT g.id_groupe as id ".
"FROM utilisateur as u, groupe as g, appartenance as app, semestre as s ".
"WHERE app.id_etudiant = u.identifiant ".
"AND app.id_groupe = g.id_groupe ".
"AND app.id_semestre = s.id_semestre ".
"AND u.identifiant = :etudiantUID ".
"AND app.id_semestre = :semestreUID");
$getGroupeUID->execute(array(
':etudiantUID' => $etudiantUID,
':semestreUID' => $semestreUID,
));
// si on trouve, on le définit, sinon on retourne "unknown_user"
if( $groupeUID = $getGroupeUID->fetch()['id'] )
$groupeUID = $groupeUID;
else
return 'unknown_group';
$UEList = $this->getUEsEtudiant($etudiant, $semestre, $annee); // on récupère la liste des UEs
foreach($UEList as $iter=>$UE){
// si on a l'UID utilisateur & l'UID groupe => on récupère les modules
$getModuleList = $this->pdo->prepare("SELECT DISTINCT m.id_module as id, m.nom as nom, m.libelle as libelle ".
"FROM module as m, groupe as g, semestre as s, ue, appartenance as app, mcc_ue, mcc_module as mcc_m ".
"WHERE app.id_semestre = s.id_semestre ".
"AND app.id_groupe = g.id_groupe ".
"AND app.id_semestre = mcc_ue.id_semestre ".
"AND mcc_ue.id_ue = ue.id_ue ".
"AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ".
"AND mcc_m.id_module = m.id_module ".
"AND g.id_groupe = :groupeUID ".
"AND s.id_semestre = :semestreUID ".
"AND ue.id_ue = :UEUID ".
"ORDER BY m.nom, m.libelle ASC");
$getModuleList->execute(array(
':groupeUID' => $groupeUID,
':semestreUID' => $semestreUID,
':UEUID' => $UE['id']
));
$modulelist = $getModuleList->fetchAll(); // on récupère la liste des modules
// on supprime les doublons des entrées (indice numérique)
for( $i = 0 ; $i < count($modulelist) ; $i++ ) // pour tout les modules
foreach($modulelist[$i] as $col => $val) // pour toutes les entrées
if( is_int($col) ) // si l'indice est un entier
unset( $modulelist[$i][$col] ); // on le supprime
$UEList[$iter]['modules'] = $modulelist; // on ajoute la liste des mdules
}
return $UEList;
}
/******************************************/
/*** retourne les modules d'un étudiant ***/
@ -407,7 +497,6 @@ class DataBase{
}
/**************************************/
/*** retourne les UEs d'un étudiant ***/
/**************************************/
@ -668,7 +757,7 @@ class DataBase{
// si on a l'UID utilisateur & l'UID groupe => on récupère les modules
$getModuleList = $this->pdo->prepare("SELECT note.intitule, note.valeur, note.base ".
$getModuleList = $this->pdo->prepare("SELECT m.nom as module, m.libelle as modulelib, note.intitule, note.valeur, note.base, note.coefficient ".
"FROM note, appartenance as app, semestre as s, module as m, mcc_ue, mcc_module as mcc_m ".
"WHERE note.id_appartenance = app.id_appartenance ".
"AND note.id_mcc_module = mcc_m.id_mcc_module ".
@ -765,7 +854,7 @@ class DataBase{
return 'unknown_UE';
// si on a l'UID utilisateur & l'UID UE => on récupère les notes
$getUEList = $this->pdo->prepare("SELECT m.nom as module, note.intitule, note.valeur, note.base ".
$getUEList = $this->pdo->prepare("SELECT m.nom as module, m.libelle as modulelib, note.intitule, note.valeur, note.base, note.coefficient ".
"FROM note, appartenance as app, semestre as s, module as m, ue, mcc_ue, mcc_module as mcc_m ".
"WHERE note.id_appartenance = app.id_appartenance ".
"AND note.id_mcc_module = mcc_m.id_mcc_module ".

View File

@ -36,6 +36,33 @@ require_once __ROOT__.'/manager/database.php';
/***********************************/
/* liste des modules d'un ETUDIANT */
/***********************************/
// case 'getByEtudiant':
// $areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent
// $typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee); // si c'est des strings
// $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->semestre) && is_numeric($request->annee); // des bon types
// $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{6,100}$/i', $request->etudiant); // nom bon format
// $semestreCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
// $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
// if( $anneeCheck ){ // si tout les paramètres sont bons
// $modules = DataBase::getInstance()->getModulesEtudiant($request->etudiant, $request->semestre, $request->annee);
// // STRUCTURE
// // tableau d'UES contenant un tableau de MODULES
// if( is_array($modules) ){ // si on a bien un tableau
// $answer->modules = $modules; // on renvoie dans answer->modules
// $answer->request = 'success'; // et on renvoie success
// }else // sinon si c'est pas un tableau
// $answer->request = $modules; // on retourne l'erreur
// }else
// $answer->request = 'param_error';
// break;
/*******************************/
/* liste des UES d'un ETUDIANT */
/*******************************/
case 'getByEtudiant':
$areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee); // si c'est des strings
@ -45,13 +72,16 @@ require_once __ROOT__.'/manager/database.php';
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons
$modules = DataBase::getInstance()->getModulesEtudiant($request->etudiant, $request->semestre, $request->annee);
$UEList = DataBase::getInstance()->getModulesByUEByEtudiant($request->etudiant, $request->semestre, $request->annee);
if( is_array($modules) ){ // si on a bien un tableau
$answer->modules = $modules; // on renvoie dans answer->modules
// STRUCTURE
// tableau d'UES contenant un tableau de MODULES
if( is_array($UEList) ){ // si on a bien un tableau
$answer->UEs = $UEList; // on renvoie dans answer->ues
$answer->request = 'success'; // et on renvoie success
}else // sinon si c'est pas un tableau
$answer->request = $modules; // on retourne l'erreur
$answer->request = $UEList; // on retourne l'erreur
}else
$answer->request = 'param_error';
break;

View File

@ -42,7 +42,7 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s
foreach($answer->notes as $module){
echo "<table class='basic col2'>";
echo "<table class='basic col4'>";
echo "<thead class='active'>";
echo '<tr>';
echo '<th colspan=5>'.$module['module']['nom'].' - '.$module['module']['libelle'].'</th>';
@ -52,8 +52,10 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s
echo '<tbody>';
foreach($module['notes'] as $note){
echo '<tr>';
echo "<td><span class=link>".$note['module']." - ".$note['modulelib']."</span></td>";
echo '<td>'.$note['intitule'].'</td>';
echo '<td>'.$note['valeur'].'/'.$note['base'].'</td>';
echo '<td>'.$note['coefficient'].'</td>';
echo '</tr>';
}
echo '</tbody>';
@ -94,7 +96,7 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s
foreach($answer->notes as $UE){
echo "<table class='basic col3'>";
echo "<table class='basic col4'>";
echo "<thead class='active'>";
echo '<tr>';
echo '<th colspan=5>'.$UE['UE']['nom'].' - '.$UE['UE']['libelle'].'</th>';
@ -104,9 +106,10 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s
echo '<tbody>';
foreach($UE['notes'] as $note){
echo '<tr>';
echo "<td><span class=link>".$note['module']."</span></td>";
echo "<td><span class=link>".$note['module']." - ".$note['modulelib']."</span></td>";
echo '<td>'.$note['intitule'].'</td>';
echo '<td>'.$note['valeur'].'/'.$note['base'].'</td>';
echo '<td>'.$note['coefficient'].'</td>';
echo '</tr>';
}
echo '</tbody>';

View File

@ -37,18 +37,21 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s
////////////////////////////////////////////////////////////////////////////////
echo "<section name='mymodules' title='Mes modules' class='basic'>";
foreach($answer->modules as $module){
foreach($answer->UEs as $UE){
echo "<table class='basic'>";
echo "<thead class='active'>";
echo '<tr>';
echo '<th colspan=5>'.$module['nom'].'</th>';
echo '<th colspan=5>'.$UE['nom'].' - '.$UE['libelle'].'</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
foreach($UE['modules'] as $MODULE){
echo '<tr>';
echo '<td>'.$module['nom'].'</td>';
echo '<td>'.$module['libelle'].'</td>';
echo '<td>'.$MODULE['nom'].'</td>';
echo '<td>'.$MODULE['libelle'].'</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
}