From 4222ea8160ae5e02d31367e244f47532d40b120f Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Wed, 26 Jan 2022 18:42:53 +0100 Subject: [PATCH] Bonus Lille --- app/comp/bonus_spo.py | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/app/comp/bonus_spo.py b/app/comp/bonus_spo.py index 15d4726b..15472b59 100644 --- a/app/comp/bonus_spo.py +++ b/app/comp/bonus_spo.py @@ -12,6 +12,7 @@ Les classes de Bonus fournissent deux méthodes: """ +import datetime import numpy as np import pandas as pd @@ -244,11 +245,11 @@ class BonusDirect(BonusSportSimples): """ name = "bonus_direct" - seuil_moy_gen = 0.0 # seuls les points au dessus du seuil sont comptés + seuil_moy_gen = 0.0 # tous les points sont comptés proportion_point = 1.0 -class BonusIUTStDenis(BonusIUTV): +class BonusStDenis(BonusIUTV): """Semblable à bonus_iutv mais sans coefficients et total limité à 0.5 points.""" name = "bonus_iut_stdenis" @@ -273,7 +274,7 @@ class BonusColmar(BonusSportSimples): bonus_moy_gen_limit = 0.5 -class BonusTours(BonusSportSimples): +class BonusTours(BonusDirect): """Calcul bonus sport & culture IUT Tours. Les notes des UE bonus (ramenées sur 20) sont sommées @@ -290,6 +291,35 @@ class BonusTours(BonusSportSimples): # ---- Un peu moins simples (mais pas trop compliqué) + + +# Bonus simple, mais avec chagement de paramètres en 2010 ! +class BonusLille(BonusSportSimples): + """Calcul bonus modules optionels (sport, culture), règle IUT Villeneuve d'Ascq + + Les étudiants de l'IUT peuvent suivre des enseignements optionnels + de l'Université Lille 1 (sports, etc) non rattachés à une unité d'enseignement. + + Les points au-dessus de 10 sur 20 obtenus dans chacune des matières + optionnelles sont cumulés et 4% (2% avant août 2010) de ces points cumulés + s'ajoutent à la moyenne générale du semestre déjà obtenue par l'étudiant. + """ + + name = "bonus_lille" + seuil_moy_gen = 10.0 # points comptés au dessus de 10. + + def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan): + """calcul du bonus""" + # La date du semestre ? + if self.formsemestre.date_debut > datetime.date(2010, 8, 1): + self.proportion_point = 0.04 + else: + self.proportion_point = 0.02 + return super().compute_bonus( + sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan + ) + + class BonusVilleAvray(BonusSport): """Calcul bonus modules optionels (sport, culture), règle IUT Ville d'Avray