forked from ScoDoc/ScoDoc
Modification calcul bonus IUT St Nazaire
This commit is contained in:
parent
6df0e8c941
commit
c52807939a
@ -1208,7 +1208,7 @@ class BonusStDenis(BonusSportAdditif):
|
|||||||
bonus_max = 0.5
|
bonus_max = 0.5
|
||||||
|
|
||||||
|
|
||||||
class BonusStNazaire(BonusSportMultiplicatif):
|
class BonusStNazaire(BonusSport):
|
||||||
"""IUT de Saint-Nazaire
|
"""IUT de Saint-Nazaire
|
||||||
|
|
||||||
Trois bonifications sont possibles : sport, culture et engagement citoyen
|
Trois bonifications sont possibles : sport, culture et engagement citoyen
|
||||||
@ -1230,9 +1230,37 @@ class BonusStNazaire(BonusSportMultiplicatif):
|
|||||||
name = "bonus_iutSN"
|
name = "bonus_iutSN"
|
||||||
displayed_name = "IUT de Saint-Nazaire"
|
displayed_name = "IUT de Saint-Nazaire"
|
||||||
classic_use_bonus_ues = True # s'applique aux UEs en DUT et LP
|
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%
|
amplitude = 0.01 / 4 # 4pt => 1%
|
||||||
factor_max = 0.1 # 10% max
|
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):
|
class BonusTarbes(BonusIUTRennes1):
|
||||||
|
Loading…
Reference in New Issue
Block a user