forked from ScoDoc/ScoDoc
Merge branch 'pe-but-v4' of https://scodoc.org/git/cleo/ScoDoc-PE
This commit is contained in:
commit
9cdab8d1ed
@ -155,7 +155,9 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
|
||||
# pe_affichage.pe_print(f" -> Traitement du tag {tag}")
|
||||
info_tag = tags_dict["personnalises"][tag]
|
||||
# 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
|
||||
self.moyennes_tags[tag] = pe_moytag.MoyennesTag(
|
||||
tag,
|
||||
@ -176,7 +178,7 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
|
||||
# Ajoute la moyenne générale par ressources
|
||||
if "moyennes_ue_res_sae" in options and options["moyennes_ue_res_sae"]:
|
||||
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(
|
||||
"ressources",
|
||||
@ -187,7 +189,9 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
|
||||
|
||||
# Ajoute la moyenne générale par saes
|
||||
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(
|
||||
"saes",
|
||||
pe_moytag.CODE_MOY_UE,
|
||||
@ -264,16 +268,21 @@ class ResSemBUTTag(ResultatsSemestreBUT, pe_tabletags.TableTag):
|
||||
return capitalisations
|
||||
|
||||
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:
|
||||
"""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 :
|
||||
* 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
|
||||
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 :
|
||||
|
||||
* 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),
|
||||
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,
|
||||
et pour chacun leur éventuel coefficient de **repondération**.
|
||||
|
||||
Args:
|
||||
ues_inscr_parcours_df: L'inscription aux UEs
|
||||
Returns:
|
||||
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]
|
||||
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
|
||||
acronymes = [self.ues_to_acronymes[ue.id] for ue in self.ues_standards]
|
||||
moyennes_ues_tag.columns = acronymes
|
||||
|
@ -106,9 +106,6 @@ class TableTag(object):
|
||||
Returns:
|
||||
Le dataframe complet de synthèse
|
||||
"""
|
||||
if not self.is_significatif():
|
||||
return None
|
||||
|
||||
# Les tags visés
|
||||
tags_tries = self.get_all_significant_tags()
|
||||
if not tags_cibles:
|
||||
@ -123,6 +120,9 @@ class TableTag(object):
|
||||
else:
|
||||
df = pd.DataFrame(index=self.etudids)
|
||||
|
||||
if not self.is_significatif():
|
||||
return df
|
||||
|
||||
# Ajout des données par tags
|
||||
for tag in tags_cibles:
|
||||
if tag in self.moyennes_tags:
|
||||
|
@ -90,7 +90,18 @@ class JuryPE(object):
|
||||
diplome : l'année d'obtention du diplome BUT et du jury de PE (généralement février XXXX)
|
||||
"""
|
||||
|
||||
def __init__(self, diplome: int, formsemestre_id_base, options=None):
|
||||
def __init__(
|
||||
self,
|
||||
diplome: int,
|
||||
formsemestre_id_base,
|
||||
options={
|
||||
"moyennes_tags": True,
|
||||
"moyennes_ue_res_sae": True,
|
||||
"moyennes_ues_rcues": True,
|
||||
"min_max_moy": False,
|
||||
"publipostage": False,
|
||||
},
|
||||
):
|
||||
pe_affichage.pe_start_log()
|
||||
self.diplome = diplome
|
||||
"L'année du diplome"
|
||||
@ -151,7 +162,11 @@ class JuryPE(object):
|
||||
self._gen_xls_synthese_jury_par_tag(zipfile)
|
||||
self._gen_html_synthese_par_etudiant(zipfile)
|
||||
except Exception as e:
|
||||
raise e
|
||||
if pe_affichage.PE_DEBUG == True:
|
||||
raise e
|
||||
else:
|
||||
pe_affichage.pe_print(str(e))
|
||||
# raise e
|
||||
# et le log
|
||||
self._add_log_to_zip(zipfile)
|
||||
|
||||
@ -222,14 +237,15 @@ class JuryPE(object):
|
||||
) as writer:
|
||||
onglets = []
|
||||
for res_sem_tag in self.ressembuttags.values():
|
||||
onglet = res_sem_tag.get_repr(verbose=True)
|
||||
onglet = onglet.replace("Semestre ", "S")
|
||||
onglets += ["📊" + onglet]
|
||||
df = res_sem_tag.to_df()
|
||||
# Conversion colonnes en multiindex
|
||||
df = convert_colonnes_to_multiindex(df)
|
||||
# écriture dans l'onglet
|
||||
df.to_excel(writer, onglet, index=True, header=True)
|
||||
if res_sem_tag.is_significatif():
|
||||
onglet = res_sem_tag.get_repr(verbose=True)
|
||||
onglet = onglet.replace("Semestre ", "S")
|
||||
onglets += ["📊" + onglet]
|
||||
df = res_sem_tag.to_df(options=self.options)
|
||||
# Conversion colonnes en multiindex
|
||||
df = convert_colonnes_to_multiindex(df)
|
||||
# écriture dans l'onglet
|
||||
df.to_excel(writer, onglet, index=True, header=True)
|
||||
pe_affichage.pe_print(
|
||||
f"--> Export excel de {', '.join(onglets)}", info=True
|
||||
)
|
||||
@ -316,7 +332,7 @@ class JuryPE(object):
|
||||
if sxtag.is_significatif():
|
||||
onglet = sxtag.get_repr(verbose=False)
|
||||
onglets += ["📊" + onglet]
|
||||
df = sxtag.to_df()
|
||||
df = sxtag.to_df(options=self.options)
|
||||
# Conversion colonnes en multiindex
|
||||
df = convert_colonnes_to_multiindex(df)
|
||||
|
||||
@ -416,7 +432,7 @@ class JuryPE(object):
|
||||
onglet = rcs_tag.get_repr(verbose=False)
|
||||
onglets += ["📊" + onglet]
|
||||
|
||||
df = rcs_tag.to_df()
|
||||
df = rcs_tag.to_df(options=self.options)
|
||||
# Conversion colonnes en multiindex
|
||||
df = convert_colonnes_to_multiindex(df)
|
||||
onglets += ["📊" + onglet]
|
||||
@ -508,7 +524,7 @@ class JuryPE(object):
|
||||
if interclass.is_significatif():
|
||||
onglet = interclass.get_repr()
|
||||
onglets += ["📊" + onglet]
|
||||
df = interclass.to_df(cohorte="Promo")
|
||||
df = interclass.to_df(cohorte="Promo", options=self.options)
|
||||
# Conversion colonnes en multiindex
|
||||
df = convert_colonnes_to_multiindex(df)
|
||||
onglets += [onglet]
|
||||
|
Loading…
Reference in New Issue
Block a user