[x] Affiches les moyennes

+ par modules
		+ prendre les max(id_notes)
		+ ignorer là ou aucune note pour avoir un aperçu du niveau
	+ par UE
		+ prendre les max(id_notes)
		+ ignorer là ou aucune note pour avoir un aperçu du niveau
	- par semestres
		+ prendre les max(id_notes)
		+ ignorer là ou aucune note pour avoir un aperçu du niveau
This commit is contained in:
xdrm-brackets 2016-01-04 12:32:20 +01:00
parent 5b1081633b
commit 9271b5ff88
3 changed files with 71 additions and 8 deletions

View File

@ -968,26 +968,74 @@ class DataBase{
$parcours = semestreRepo::getParcours($etudiantUID); $parcours = semestreRepo::getParcours($etudiantUID);
/* [1] Chaque semestre
==========================*/
foreach($parcours as $iter_s=>$semestre){ foreach($parcours as $iter_s=>$semestre){
$parcours[$iter_s]['UEs'] = ueRepo::forStudent($etudiantUID, $semestre['id']); $parcours[$iter_s]['UEs'] = ueRepo::forStudent($etudiantUID, $semestre['id']);
/* CALCUL DE MOYENNE DU SEMESTRE */
$moyenneSemestre = 0; // contiendra la somme des valeurs*coefficients
$totalSemestre = 0; // contiendra la somme des coefficients
/* [2] Chaque UE
==========================*/
foreach($parcours[$iter_s]['UEs'] as $iter_ue=>$UE){ foreach($parcours[$iter_s]['UEs'] as $iter_ue=>$UE){
$parcours[$iter_s]['UEs'][$iter_ue]['modules'] = moduleRepo::forStudent($UE['id'], $semestre['id']); $parcours[$iter_s]['UEs'][$iter_ue]['modules'] = moduleRepo::forStudent($UE['id'], $semestre['id']);
/* CALCUL DE MOYENNE DE L'UE */
$moyenneUE = 0; // contiendra la somme des valeurs*coefficients
$totalUE = 0; // contiendra la somme des coefficients
/* [3] Chaque module
==========================*/
foreach($parcours[$iter_s]['UEs'][$iter_ue]['modules'] as $iter_mod=>$MOD){ foreach($parcours[$iter_s]['UEs'][$iter_ue]['modules'] as $iter_mod=>$MOD){
$parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'] = controleRepo::forStudent($MOD['id'], $semestre['id']); $parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'] = controleRepo::forStudent($MOD['id'], $semestre['id']);
$parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['moyenne'] = noteRepo::moyenneModule($etudiantUID, $MOD['id'], $semestre['id']); $parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['moyenne'] = noteRepo::moyenneModule($etudiantUID, $MOD['id'], $semestre['id']);
foreach($parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'] as $iter_ct=>$CONTROLE){
// on complète la moyenne de l'UE si le module a une moyenne
$tmpModule = $parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod];
if( !is_bool($tmpModule['moyenne']) ){
$moyenneUE += $tmpModule['moyenne']['moyenne']/$tmpModule['moyenne']['base'] * $tmpModule['coefficient'];
$totalUE += $tmpModule['coefficient'];
}
/* [4] Chaque contrôle
==========================*/
foreach($parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'] as $iter_ct=>$CONTROLE)
$parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['notes'] = noteRepo::forStudent($etudiantUID, $CONTROLE['id']); $parcours[$iter_s]['UEs'][$iter_ue]['modules'][$iter_mod]['controles'][$iter_ct]['notes'] = noteRepo::forStudent($etudiantUID, $CONTROLE['id']);
}
} }
/* ENREGISTREMENT DE LA MOYENNE DE L'UE */
if( $totalUE == 0 ) // si la somme vaut 0, on retourne FALSE
$parcours[$iter_s]['UEs'][$iter_ue]['moyenne'] = false;
else
$parcours[$iter_s]['UEs'][$iter_ue]['moyenne'] = array('moyenne' => 20*$moyenneUE/$totalUE, 'base' => 20 );
// on complète la moyenne du semestre si l'UE a une moyenne
$tmpUE = $parcours[$iter_s]['UEs'][$iter_ue];
if( !is_bool($tmpUE['moyenne']) ){
$moyenneSemestre += $tmpUE['moyenne']['moyenne']/$tmpUE['moyenne']['base'] * $tmpUE['coefficient'];
$totalSemestre += $tmpUE['coefficient'];
} }
}
/* ENREGISTREMENT DE LA MOYENNE DU SEMESTRE */
if( $totalSemestre == 0 ) // si la somme vaut 0, on retourne FALSE
$parcours[$iter_s]['moyenne'] = false;
else
$parcours[$iter_s]['moyenne'] = array('moyenne' => 20*$moyenneSemestre/$totalSemestre, 'base' => 20 );
} }
return $parcours; return $parcours;

View File

@ -244,7 +244,7 @@ class noteRepo{
AND app.id_etudiant = :etudiant AND app.id_etudiant = :etudiant
AND mcc_m.id_module = :module AND mcc_m.id_module = :module
AND app.id_semestre = :semestre AND app.id_semestre = :semestre
AND note.id_note in (SELECT max(id_note) FROM note GROUP BY id_controle, id_appartenance) AND note.id_note in (SELECT max(id_note) FROM note WHERE id_controle=ctrl.id_controle AND id_appartenance=app.id_appartenance GROUP BY id_controle, id_appartenance)
GROUP BY mcc_m.id_mcc_module"); GROUP BY mcc_m.id_mcc_module");
$getMoyenneModule->execute(array( ':etudiant' => $etudiant, ':module' => $module, ':semestre' => $semestre )); $getMoyenneModule->execute(array( ':etudiant' => $etudiant, ':module' => $module, ':semestre' => $semestre ));

View File

@ -1096,7 +1096,7 @@ if( (permission('master') || permission('admin')) && $etudiantOpt != null ){
echo '</thead></table>'; echo '</thead></table>';
foreach($UE['modules'] as $module){ // pour chaque module foreach($UE['modules'] as $module){ // pour chaque module
echo '<table class=basic><thead>'; echo '<table class=basic><thead>';
echo '<tr><th colspan=5>'.$module['nom'].' - '.$module['libelle'].'</th></tr></thead><tbody>'; echo "<tr><th colspan=5>".$module['nom']." - ".$module['libelle']." <span class='unstressed' style='font-weight:normal'>(coeff. ".$module['coefficient'].")</span></th></tr></thead><tbody>";
foreach($module['controles'] as $controle){ // pour chaque contrôle foreach($module['controles'] as $controle){ // pour chaque contrôle
echo '<tr>'; echo '<tr>';
@ -1114,10 +1114,25 @@ if( (permission('master') || permission('admin')) && $etudiantOpt != null ){
// moyenne du module // moyenne du module
// echo "<td colspan=4><span class='stressed'>Moyenne du module</span></td>"; // echo "<td colspan=4><span class='stressed'>Moyenne du module</span></td>";
echo "<tr class='transparentbg noborder'>"; echo "<tr class='transparentbg noborder'>";
/* MOYENNE MODULE */
if( is_bool($module['moyenne']) ) // si aucune note pour ce controle on affiche 'Pas de note' if( is_bool($module['moyenne']) ) // si aucune note pour ce controle on affiche 'Pas de note'
echo "<td colspan=4><span class='link stressed' style='padding:1em; background:white;'>Pas de moyenne</span></td>"; echo "<td colspan=1><span class='link stressed' style='padding:.5em 1em; background:white;'>Pas de moyenne</span></td>";
else // si une note, alors on l'affiche else // si une note, alors on l'affiche
echo "<td colspan=4><span class='link stressed' style='padding:1em; background:white;'>moyenne de ".number_format($module['moyenne']['moyenne'], 2)." <span class=unstressed>/</span> ".$module['moyenne']['base']."</span></td>"; echo "<td colspan=1><span class='link' 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>";
/* MOYENNE UE */
if( is_bool($UE['moyenne']) ) // si aucune note pour cet UE on affiche 'Pas de moyenne'
echo "<td colspan=1><span class='link 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' 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>";
/* MOYENNE SEMESTRE */
if( is_bool($semestre['moyenne']) ) // si aucune note pour ce semestre on affiche 'Pas de moyenne'
echo "<td colspan=1><span class='link 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' 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>";
echo '</tr>'; echo '</tr>';