Cas des moyennes par tag sans notes

This commit is contained in:
Cléo Baras 2024-03-06 16:53:54 +01:00
parent 99bb0f471b
commit 16a12dad59
1 changed files with 15 additions and 13 deletions

View File

@ -98,9 +98,7 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
self.parcours += [None]
# Les UEs en fonction des parcours
self.ues_inscr_parcours_df = (
self.load_ues_inscr_parcours()
) # peut contenir du sport
self.ues_inscr_parcours_df = self.load_ues_inscr_parcours()
"""Inscription des étudiants aux UEs des parcours (etudids x ue_ids)"""
# Les acronymes des UEs
@ -126,14 +124,16 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
# Les tags personnalisés et auto:
if "moyennes_tags" in options:
tags_dict = self._get_tags_dict(avec_moyennes_tags=options["moyennes_tags"])
self.tags_dict = self._get_tags_dict(
avec_moyennes_tags=options["moyennes_tags"]
)
else:
tags_dict = self._get_tags_dict()
self.tags_dict = self._get_tags_dict()
pe_affichage.pe_print(
f"""--> {pe_affichage.aff_tags_par_categories(tags_dict)}"""
f"""--> {pe_affichage.aff_tags_par_categories(self.tags_dict)}"""
)
self._check_tags(tags_dict)
self._check_tags(self.tags_dict)
# Les coefficients pour le calcul de la moyenne générale, donnés par
# acronymes d'UE
@ -159,9 +159,9 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
# Calcul des moyennes & les classements de chaque étudiant à chaque tag
self.moyennes_tags = {}
"""Moyennes par tags (personnalisés ou 'but')"""
for tag in tags_dict["personnalises"]:
for tag in self.tags_dict["personnalises"]:
# pe_affichage.pe_print(f" -> Traitement du tag {tag}")
info_tag = tags_dict["personnalises"][tag]
info_tag = self.tags_dict["personnalises"][tag]
# Les moyennes générales par UEs
moy_ues_tag = self.compute_moy_ues_tag(
self.ues_inscr_parcours_df, info_tag=info_tag, pole=None
@ -361,22 +361,24 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
# Calcule les moyennes pour le tag visé dans chaque UE (dataframe etudid x ues)
moyennes_ues_tag = comp.moy_ue.compute_ue_moys_apc(
self.sem_cube,
self.sem_cube, # matrice etudids x modimpls x UEs
self.etuds,
self.formsemestre.modimpls_sorted,
self.modimpl_inscr_df,
modimpl_coefs_ponderes_df,
modimpls_mask,
self.dispense_ues,
block=self.formsemestre.block_moyennes,
block=False, # self.formsemestre.block_moyennes, calcul même si sem bloqué
)
# Ne conserve que les UEs standards
colonnes = [ue.id for ue in self.ues_standards]
moyennes_ues_tag = moyennes_ues_tag[colonnes]
# Met à zéro les moyennes non calculées/calculables
moyennes_ues_tag.fillna(0.0, inplace=True)
# Met à zéro les moyennes non calculées/calculables pour les UEs ayant des notes
for col in colonnes:
if moyennes_ues_tag[col].isna().sum() != len(moyennes_ues_tag[col]):
moyennes_ues_tag[col].fillna(0.0, inplace=True)
# Applique le masque d'inscription aux UE pour ne conserver que les UE dans lequel l'étudiant est inscrit
moyennes_ues_tag = moyennes_ues_tag[colonnes] * ues_inscr_parcours_df[colonnes]