Update opolka/ScoDoc from ScoDoc/ScoDoc #2

Merged
opolka merged 1272 commits from ScoDoc/ScoDoc:master into master 2024-05-27 09:11:04 +02:00
Showing only changes of commit 8c909062e7 - Show all commits

View File

@ -1536,60 +1536,61 @@ class BonusIUTV(BonusSportAdditif):
# c'est le bonus par défaut: aucune méthode à surcharger # c'est le bonus par défaut: aucune méthode à surcharger
class BonusMastersUSPNIG(BonusSportAdditif): # Finalement inutile: un bonus direct est mieux adapté à leurs besoins.
"""Calcul bonus modules optionnels (sport, culture), règle Masters de l'Institut Galilée (USPN) # # class BonusMastersUSPNIG(BonusSportAdditif):
# """Calcul bonus modules optionnels (sport, culture), règle Masters de l'Institut Galilée (USPN)
Les étudiants peuvent suivre des enseignements optionnels # Les étudiants peuvent suivre des enseignements optionnels
de l'USPN (sports, musique, deuxième langue, culture, etc) dans une # de l'USPN (sports, musique, deuxième langue, culture, etc) dans une
UE libre. Les points au-dessus de 10 sur 20 obtenus dans cette UE # UE libre. Les points au-dessus de 10 sur 20 obtenus dans cette UE
libre sont ajoutés au total des points obtenus pour les UE obligatoires # libre sont ajoutés au total des points obtenus pour les UE obligatoires
du semestre concerné. # du semestre concerné.
""" # """
name = "bonus_masters__uspn_ig" # name = "bonus_masters__uspn_ig"
displayed_name = "Masters de l'Institut Galilée (USPN)" # displayed_name = "Masters de l'Institut Galilée (USPN)"
proportion_point = 1.0 # proportion_point = 1.0
seuil_moy_gen = 10.0 # seuil_moy_gen = 10.0
def __init__( # def __init__(
self, # self,
formsemestre: "FormSemestre", # formsemestre: "FormSemestre",
sem_modimpl_moys: np.array, # sem_modimpl_moys: np.array,
ues: list, # ues: list,
modimpl_inscr_df: pd.DataFrame, # modimpl_inscr_df: pd.DataFrame,
modimpl_coefs: np.array, # modimpl_coefs: np.array,
etud_moy_gen, # etud_moy_gen,
etud_moy_ue, # etud_moy_ue,
): # ):
# Pour ce bonus, il nous faut la somme des coefs des modules non bonus # # Pour ce bonus, il nous faut la somme des coefs des modules non bonus
# du formsemestre (et non auxquels les étudiants sont inscrits !) # # du formsemestre (et non auxquels les étudiants sont inscrits !)
self.sum_coefs = sum( # self.sum_coefs = sum(
[ # [
m.module.coefficient # m.module.coefficient
for m in formsemestre.modimpls_sorted # for m in formsemestre.modimpls_sorted
if (m.module.module_type == ModuleType.STANDARD) # if (m.module.module_type == ModuleType.STANDARD)
and (m.module.ue.type == UE_STANDARD) # and (m.module.ue.type == UE_STANDARD)
] # ]
) # )
super().__init__( # super().__init__(
formsemestre, # formsemestre,
sem_modimpl_moys, # sem_modimpl_moys,
ues, # ues,
modimpl_inscr_df, # modimpl_inscr_df,
modimpl_coefs, # modimpl_coefs,
etud_moy_gen, # etud_moy_gen,
etud_moy_ue, # etud_moy_ue,
) # )
# Bonus sur la moyenne générale seulement # # Bonus sur la moyenne générale seulement
# On a dans bonus_moy_arr le bonus additif classique # # On a dans bonus_moy_arr le bonus additif classique
# Sa valeur sera appliquée comme moy_gen += bonus_moy_gen # # Sa valeur sera appliquée comme moy_gen += bonus_moy_gen
# or ici on veut # # or ici on veut
# moy_gen = (somme des notes + bonus_moy_arr) / somme des coefs # # moy_gen = (somme des notes + bonus_moy_arr) / somme des coefs
# moy_gen += bonus_moy_arr / somme des coefs # # moy_gen += bonus_moy_arr / somme des coefs
self.bonus_moy_gen = ( # self.bonus_moy_gen = (
None if self.bonus_moy_gen is None else self.bonus_moy_gen / self.sum_coefs # None if self.bonus_moy_gen is None else self.bonus_moy_gen / self.sum_coefs
) # )
def get_bonus_class_dict(start=BonusSport, d=None): def get_bonus_class_dict(start=BonusSport, d=None):