[x] Compensations
+ au moins 1 des UE entre 8 et 10 (strictement pour 10) + moyenne des UE < 10 -> UEs entre 8 et 10 ORANGES + SEMESTRE en ORANGE + moyenne des UE >= 10 -> UEs entre 8 et 10 ORANGES + SEMESTRE en VERT + au moins 1 des UE < 8 + SEMESTRE en ROUGE
This commit is contained in:
parent
f991b439ae
commit
7e20d41872
|
@ -1012,6 +1012,11 @@ class DataBase{
|
|||
$moyenneSemestre = 0; // contiendra la somme des valeurs*coefficients
|
||||
$totalSemestre = 0; // contiendra la somme des coefficients
|
||||
|
||||
// par défaut le semestre est compensable
|
||||
$semestreCompensable = true;
|
||||
// vrai si le semestre est obtenu par compensation des UE
|
||||
$semestreCompensation = false;
|
||||
|
||||
|
||||
/* [2] Chaque UE
|
||||
==========================*/
|
||||
|
@ -1060,6 +1065,14 @@ class DataBase{
|
|||
if( !is_bool($tmpUE['moyenne']) ){
|
||||
$moyenneSemestre += $tmpUE['moyenne']['moyenne']/$tmpUE['moyenne']['base'] * $tmpUE['coefficient'];
|
||||
$totalSemestre += $tmpUE['coefficient'];
|
||||
|
||||
// le semestre est non compensable si la moyenne d'au moins un UE < 8
|
||||
if( 20*$tmpUE['moyenne']['moyenne']/$tmpUE['moyenne']['base'] < 8 )
|
||||
$semestreCompensable = false;
|
||||
|
||||
// semestreCompensé est VRAI si au moins un semestre est entre 8 et 10
|
||||
if( 20*$tmpUE['moyenne']['moyenne']/$tmpUE['moyenne']['base'] >= 8 && 20*$tmpUE['moyenne']['moyenne']/$tmpUE['moyenne']['base'] < 10 )
|
||||
$semestreCompensation = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1071,6 +1084,14 @@ class DataBase{
|
|||
else
|
||||
$parcours[$iter_s]['moyenne'] = array('moyenne' => 20*$moyenneSemestre/$totalSemestre, 'base' => 20 );
|
||||
|
||||
$parcours[$iter_s]['compensable'] = $semestreCompensable;
|
||||
|
||||
// si le semestre est obtenu et utilise la compensation => on le définit
|
||||
if( $semestreCompensable && $semestreCompensation && $parcours[$iter_s]['moyenne']['moyenne'] >= 10 )
|
||||
$parcours[$iter_s]['compensation'] = true;
|
||||
else
|
||||
$parcours[$iter_s]['compensation'] = false;
|
||||
|
||||
}
|
||||
|
||||
return $parcours;
|
||||
|
|
|
@ -1076,11 +1076,32 @@ if( permission('master') || permission('admin') ){
|
|||
// retourne la classe correspondant à une valeur de note
|
||||
function noteToClass($valeur, $base){
|
||||
$note = 20 * $valeur/$base;
|
||||
if( $note < 8 ) return 'low'; // Ne peut pas compenser
|
||||
if( $note < 8 ) return 'low'; // Ne peut pas compenser
|
||||
elseif( $note < 10 ) return 'med'; // Peut compenser
|
||||
else return 'hig'; // A la moyenne
|
||||
}
|
||||
|
||||
// retourne la classe correspondant à une couleur pour un semestre
|
||||
function noteToClassSemestre($valeur, $base, $compensable, $compensation){
|
||||
$class = null;
|
||||
$val = 20 * $valeur/$base;
|
||||
|
||||
|
||||
if( $compensation ) // on a le semestre, avec aucun UE en dessous de 8 (ORANGE)
|
||||
$class = 'med';
|
||||
|
||||
if( !$compensable ) // non compensable (au moins un UE en dessous de 8), on a pas le semestre (ROUGE)
|
||||
$class = 'low';
|
||||
|
||||
// si rien de spécial, on définit avec les valeurs par défaut
|
||||
if( $class == null ){
|
||||
if( $val < 10 ) $class = 'low'; // si en-dessous de 10, on a pas le semestre (ROUGE)
|
||||
else $class = 'hig'; // si sup/egal à 10, on a le semestre (VERT)
|
||||
}
|
||||
|
||||
return $class;
|
||||
}
|
||||
|
||||
if( (permission('master') || permission('admin')) && $etudiantOpt != null ){
|
||||
include __ROOT__.'/src/svg_v2.php';
|
||||
|
||||
|
@ -1109,10 +1130,12 @@ if( (permission('master') || permission('admin')) && $etudiantOpt != null ){
|
|||
$index = count($parcoursChart);
|
||||
|
||||
$parcoursChart[$index] = array(
|
||||
'id' => $semestre['id'],
|
||||
'nom' => $semestre['code'].' '.$semestre['semestre'],
|
||||
'mention' => $semestre['mention'],
|
||||
'moyenne' => $semestre['moyenne']
|
||||
'id' => $semestre['id'],
|
||||
'nom' => $semestre['code'].' '.$semestre['semestre'],
|
||||
'mention' => $semestre['mention'],
|
||||
'moyenne' => $semestre['moyenne'],
|
||||
'compensable' => $semestre['compensable'],
|
||||
'compensation' => $semestre['compensation']
|
||||
);
|
||||
|
||||
// on spécifie les moyennes des UEs
|
||||
|
@ -1173,7 +1196,7 @@ if( (permission('master') || permission('admin')) && $etudiantOpt != null ){
|
|||
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 ".noteToClass($semestre['moyenne']['moyenne'], $semestre['moyenne']['base'])."' 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 "<td colspan=1><span class='link ".noteToClassSemestre($semestre['moyenne']['moyenne'], $semestre['moyenne']['base'], $semestre['compensable'], $semestre['compensation'])."' 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>';
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -75,10 +75,22 @@ function displayParcours($parcours, $selected){
|
|||
|
||||
// couleur du texte en fonction de la note
|
||||
if( !is_bool($parcours[$i]['moyenne']) ){
|
||||
$themeColor = null;
|
||||
$val = 20 * $parcours[$i]['moyenne']['moyenne']/$parcours[$i]['moyenne']['base'];
|
||||
if( $val <= 8 ) $themeColor = '#f55b55';
|
||||
elseif( $val < 10 ) $themeColor = '#f59555';
|
||||
else $themeColor = '#2dcc70';
|
||||
|
||||
|
||||
if( $parcours[$i]['compensation'] ) // on a le semestre, avec aucun UE en dessous de 8 (ORANGE)
|
||||
$themeColor = '#f59555';
|
||||
|
||||
if( !$parcours[$i]['compensable'] ) // non compensable (au moins un UE en dessous de 8), on a pas le semestre (ROUGE)
|
||||
$themeColor = '#f55b55';
|
||||
|
||||
// si rien de spécial, on définit avec les valeurs par défaut
|
||||
if( $themeColor == null ){
|
||||
if( $val < 10 ) $themeColor = '#f55b55'; // si en-dessous de 8, on a pas le semestre (ROUGE)
|
||||
else $themeColor = '#2dcc70'; // si sup/egal à 10, on a le semestre (VERT)
|
||||
}
|
||||
|
||||
}else // si pas de note, on met la couleur par défaut
|
||||
$themeColor = $normColor;
|
||||
|
||||
|
@ -98,7 +110,7 @@ function displayParcours($parcours, $selected){
|
|||
// couleur du texte en fonction de la note
|
||||
if( !is_bool($UE['moyenne']) ){
|
||||
$val = 20 * $UE['moyenne']['moyenne']/$UE['moyenne']['base'];
|
||||
if( $val <= 8 ) $themeColor = '#f55b55';
|
||||
if( $val < 8 ) $themeColor = '#f55b55';
|
||||
elseif( $val < 10 ) $themeColor = '#f59555';
|
||||
else $themeColor = '#2dcc70';
|
||||
}else // si pas de note, on met la couleur par défaut
|
||||
|
|
Loading…
Reference in New Issue