From 16a12dad5942182a7193905af0f3a95019792eb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9o=20BARAS=20=28IUT1=20Grenoble=29?= Date: Wed, 6 Mar 2024 16:53:54 +0100 Subject: [PATCH] Cas des moyennes par tag sans notes --- app/pe/moys/pe_ressemtag.py | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/app/pe/moys/pe_ressemtag.py b/app/pe/moys/pe_ressemtag.py index 0e9c9cc0..b866f6ef 100644 --- a/app/pe/moys/pe_ressemtag.py +++ b/app/pe/moys/pe_ressemtag.py @@ -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]