Skip to content
Snippets Groups Projects
Commit c5280793 authored by Emmanuel Viennet's avatar Emmanuel Viennet
Browse files

Modification calcul bonus IUT St Nazaire

parent 6df0e8c9
No related branches found
No related tags found
No related merge requests found
......@@ -1208,7 +1208,7 @@ class BonusStDenis(BonusSportAdditif):
bonus_max = 0.5
class BonusStNazaire(BonusSportMultiplicatif):
class BonusStNazaire(BonusSport):
"""IUT de Saint-Nazaire
Trois bonifications sont possibles : sport, culture et engagement citoyen
......@@ -1230,9 +1230,37 @@ class BonusStNazaire(BonusSportMultiplicatif):
name = "bonus_iutSN"
displayed_name = "IUT de Saint-Nazaire"
classic_use_bonus_ues = True # s'applique aux UEs en DUT et LP
seuil_moy_gen = 0.0 # tous les points comptent
amplitude = 0.01 / 4 # 4pt => 1%
factor_max = 0.1 # 10% max
# Modifié 2022-11-29: calculer chaque bonus
# (de 1 à 3 modules) séparément.
def compute_bonus(self, sem_modimpl_moys_inscrits, modimpl_coefs_etuds_no_nan):
"""Calcul du bonus St Nazaire 2022
sem_modimpl_moys_inscrits: les notes de sport
En APC: ndarray (nb_etuds, nb_mod_sport, nb_ues_non_bonus)
En classic: ndarray (nb_etuds, nb_mod_sport)
"""
if 0 in sem_modimpl_moys_inscrits.shape:
# pas d'étudiants ou pas d'UE ou pas de module...
return
# Prend les 3 premiers bonus trouvés
# ignore les coefficients
bonus_mod_moys = sem_modimpl_moys_inscrits[:, :3]
bonus_mod_moys = np.nan_to_num(bonus_mod_moys, copy=False)
factor = bonus_mod_moys * self.amplitude
# somme les bonus:
factor = factor.sum(axis=1)
# et limite à 10%:
factor.clip(0.0, self.factor_max, out=factor)
# Applique aux moyennes d'UE
if len(factor.shape) == 1: # classic
factor = factor[:, np.newaxis]
bonus = self.etud_moy_ue * factor
self.bonus_ues = bonus # DataFrame
# Les bonus multiplicatifs ne s'appliquent pas à la moyenne générale
self.bonus_moy_gen = None
class BonusTarbes(BonusIUTRennes1):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment