Corrige prise en compte des inscriptions aux UEs pour les moyennes par tag

This commit is contained in:
Cléo Baras 2024-02-28 11:00:32 +01:00
parent e675064cae
commit ce0d5ec9fd

View File

@ -155,7 +155,9 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
# pe_affichage.pe_print(f" -> Traitement du tag {tag}") # pe_affichage.pe_print(f" -> Traitement du tag {tag}")
info_tag = tags_dict["personnalises"][tag] info_tag = tags_dict["personnalises"][tag]
# Les moyennes générales par UEs # Les moyennes générales par UEs
moy_ues_tag = self.compute_moy_ues_tag(info_tag=info_tag, pole=None) moy_ues_tag = self.compute_moy_ues_tag(
self.ues_inscr_parcours_df, info_tag=info_tag, pole=None
)
# Mémorise les moyennes # Mémorise les moyennes
self.moyennes_tags[tag] = pe_moytag.MoyennesTag( self.moyennes_tags[tag] = pe_moytag.MoyennesTag(
tag, tag,
@ -176,7 +178,7 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
# Ajoute la moyenne générale par ressources # Ajoute la moyenne générale par ressources
if "moyennes_ue_res_sae" in options and options["moyennes_ue_res_sae"]: if "moyennes_ue_res_sae" in options and options["moyennes_ue_res_sae"]:
moy_res_gen = self.compute_moy_ues_tag( moy_res_gen = self.compute_moy_ues_tag(
info_tag=None, pole=ModuleType.RESSOURCE self.ues_inscr_parcours_df, info_tag=None, pole=ModuleType.RESSOURCE
) )
self.moyennes_tags["ressources"] = pe_moytag.MoyennesTag( self.moyennes_tags["ressources"] = pe_moytag.MoyennesTag(
"ressources", "ressources",
@ -187,7 +189,9 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
# Ajoute la moyenne générale par saes # Ajoute la moyenne générale par saes
if "moyennes_ue_res_sae" in options and options["moyennes_ue_res_sae"]: if "moyennes_ue_res_sae" in options and options["moyennes_ue_res_sae"]:
moy_saes_gen = self.compute_moy_ues_tag(info_tag=None, pole=ModuleType.SAE) moy_saes_gen = self.compute_moy_ues_tag(
self.ues_inscr_parcours_df, info_tag=None, pole=ModuleType.SAE
)
self.moyennes_tags["saes"] = pe_moytag.MoyennesTag( self.moyennes_tags["saes"] = pe_moytag.MoyennesTag(
"saes", "saes",
pe_moytag.CODE_MOY_UE, pe_moytag.CODE_MOY_UE,
@ -264,16 +268,21 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
return capitalisations return capitalisations
def compute_moy_ues_tag( def compute_moy_ues_tag(
self, info_tag: dict[int, dict] = None, pole=None self,
ues_inscr_parcours_df: pd.DataFrame,
info_tag: dict[int, dict] = None,
pole=None,
) -> pd.DataFrame: ) -> pd.DataFrame:
"""Calcule la moyenne par UE des étudiants pour un tag donné, """Calcule la moyenne par UE des étudiants pour un tag donné,
en ayant connaissance des informations sur le tag. en ayant connaissance des informations sur le tag et des inscriptions des étudiants aux différentes UEs.
info_tag détermine les modules pris en compte : info_tag détermine les modules pris en compte :
* si non `None`, seuls les modules rattachés au tag sont pris en compte * si non `None`, seuls les modules rattachés au tag sont pris en compte
* si `None`, tous les modules (quelque soit leur rattachement au tag) sont pris * si `None`, tous les modules (quelque soit leur rattachement au tag) sont pris
en compte (sert au calcul de la moyenne générale par ressource ou SAE) en compte (sert au calcul de la moyenne générale par ressource ou SAE)
ues_inscr_parcours_df détermine les UEs pour lesquels le calcul d'une moyenne à un sens.
`pole` détermine les modules pris en compte : `pole` détermine les modules pris en compte :
* si `pole` vaut `ModuleType.RESSOURCE`, seules les ressources sont prises * si `pole` vaut `ModuleType.RESSOURCE`, seules les ressources sont prises
@ -282,10 +291,11 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
* si `pole` vaut `None` (ou toute autre valeur), * si `pole` vaut `None` (ou toute autre valeur),
tous les modules sont pris en compte (moyenne d'UEs) tous les modules sont pris en compte (moyenne d'UEs)
Les informations sur le tag sont un dictionnaire listant les modimpl_id rattachés au tag, Les informations sur le tag sont un dictionnaire listant les modimpl_id rattachés au tag,
et pour chacun leur éventuel coefficient de **repondération**. et pour chacun leur éventuel coefficient de **repondération**.
Args:
ues_inscr_parcours_df: L'inscription aux UEs
Returns: Returns:
Le dataframe des moyennes du tag par UE Le dataframe des moyennes du tag par UE
""" """
@ -332,6 +342,9 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
colonnes = [ue.id for ue in self.ues_standards] colonnes = [ue.id for ue in self.ues_standards]
moyennes_ues_tag = moyennes_ues_tag[colonnes] moyennes_ues_tag = moyennes_ues_tag[colonnes]
# 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]
# Transforme les UEs en acronyme # Transforme les UEs en acronyme
acronymes = [self.ues_to_acronymes[ue.id] for ue in self.ues_standards] acronymes = [self.ues_to_acronymes[ue.id] for ue in self.ues_standards]
moyennes_ues_tag.columns = acronymes moyennes_ues_tag.columns = acronymes