forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -52,6 +52,7 @@ class ParametrageClasseurPE(FlaskForm):
|
|||||||
)
|
)
|
||||||
|
|
||||||
min_max_moy = BooleanField("Afficher les colonnes min/max/moy")
|
min_max_moy = BooleanField("Afficher les colonnes min/max/moy")
|
||||||
|
|
||||||
synthese_individuelle_etud = BooleanField(
|
synthese_individuelle_etud = BooleanField(
|
||||||
"Générer les synthèses HTML étudiant par étudiant"
|
"Générer les synthèses HTML étudiant par étudiant"
|
||||||
)
|
)
|
||||||
|
@ -280,7 +280,7 @@ class InterClassTag(pe_tabletags.TableTag):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
def compute_df_synthese_moyennes_tag(
|
def compute_df_synthese_moyennes_tag(
|
||||||
self, tag, aggregat=None, type_colonnes=False
|
self, tag, aggregat=None, type_colonnes=False, options={"min_max_moy": True}
|
||||||
) -> pd.DataFrame:
|
) -> pd.DataFrame:
|
||||||
"""Construit le dataframe retraçant pour les données des moyennes
|
"""Construit le dataframe retraçant pour les données des moyennes
|
||||||
pour affichage dans la synthèse du jury PE. (cf. to_df())
|
pour affichage dans la synthèse du jury PE. (cf. to_df())
|
||||||
@ -322,8 +322,7 @@ class InterClassTag(pe_tabletags.TableTag):
|
|||||||
if tag in rcstag.moyennes_tags:
|
if tag in rcstag.moyennes_tags:
|
||||||
moytag: pd.DataFrame = rcstag.moyennes_tags[tag]
|
moytag: pd.DataFrame = rcstag.moyennes_tags[tag]
|
||||||
df_moytag = moytag.to_df(
|
df_moytag = moytag.to_df(
|
||||||
aggregat=aggregat,
|
aggregat=aggregat, cohorte="Groupe", options=options
|
||||||
cohorte="Groupe",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Modif les colonnes au regard du 1er df_moytag significatif lu
|
# Modif les colonnes au regard du 1er df_moytag significatif lu
|
||||||
|
@ -18,7 +18,12 @@ class Moyenne:
|
|||||||
]
|
]
|
||||||
"""Colonnes du df"""
|
"""Colonnes du df"""
|
||||||
|
|
||||||
COLONNES_SYNTHESE = ["note", "rang", "min", "max", "moy"]
|
@classmethod
|
||||||
|
def get_colonnes_synthese(cls, with_min_max_moy):
|
||||||
|
if with_min_max_moy:
|
||||||
|
return ["note", "rang", "min", "max", "moy"]
|
||||||
|
else:
|
||||||
|
return ["note", "rang"]
|
||||||
|
|
||||||
def __init__(self, notes: pd.Series):
|
def __init__(self, notes: pd.Series):
|
||||||
"""Classe centralisant la synthèse des moyennes/classements d'une série
|
"""Classe centralisant la synthèse des moyennes/classements d'une série
|
||||||
@ -97,9 +102,12 @@ class Moyenne:
|
|||||||
|
|
||||||
return df
|
return df
|
||||||
|
|
||||||
def get_df_synthese(self):
|
def get_df_synthese(self, with_min_max_moy=None):
|
||||||
"""Renvoie le df de synthese limité aux colonnes de synthese"""
|
"""Renvoie le df de synthese limité aux colonnes de synthese"""
|
||||||
df = self.df[self.COLONNES_SYNTHESE].copy()
|
colonnes_synthese = Moyenne.get_colonnes_synthese(
|
||||||
|
with_min_max_moy=with_min_max_moy
|
||||||
|
)
|
||||||
|
df = self.df[colonnes_synthese].copy()
|
||||||
df["rang"] = df["rang"].replace("nan", "")
|
df["rang"] = df["rang"].replace("nan", "")
|
||||||
return df
|
return df
|
||||||
|
|
||||||
|
@ -107,15 +107,18 @@ class MoyennesTag:
|
|||||||
|
|
||||||
return moy_gen_tag
|
return moy_gen_tag
|
||||||
|
|
||||||
def to_df(self, aggregat=None, cohorte=None) -> pd.DataFrame:
|
def to_df(
|
||||||
|
self, aggregat=None, cohorte=None, options={"min_max_moy": True}
|
||||||
|
) -> pd.DataFrame:
|
||||||
"""Renvoie le df synthétisant l'ensemble des données
|
"""Renvoie le df synthétisant l'ensemble des données
|
||||||
connues
|
connues
|
||||||
Adapte les intitulés des colonnes aux données fournies
|
Adapte les intitulés des colonnes aux données fournies
|
||||||
(nom d'aggrégat, type de cohorte).
|
(nom d'aggrégat, type de cohorte).
|
||||||
|
|
||||||
`pole` détermine les modules à prendre en compte dans la moyenne (None=tous,
|
|
||||||
RESSOURCES ou SAES)
|
|
||||||
"""
|
"""
|
||||||
|
if "min_max_moy" not in options or options["min_max_moy"]:
|
||||||
|
with_min_max_moy = True
|
||||||
|
else:
|
||||||
|
with_min_max_moy = False
|
||||||
|
|
||||||
etudids_sorted = sorted(self.etudids)
|
etudids_sorted = sorted(self.etudids)
|
||||||
|
|
||||||
@ -124,20 +127,27 @@ class MoyennesTag:
|
|||||||
# Ajout des notes pour tous les champs
|
# Ajout des notes pour tous les champs
|
||||||
champs = list(self.champs)
|
champs = list(self.champs)
|
||||||
for champ in champs:
|
for champ in champs:
|
||||||
df_champ = self.moyennes_gen[champ].get_df_synthese() # le dataframe
|
df_champ = self.moyennes_gen[champ].get_df_synthese(
|
||||||
|
with_min_max_moy=with_min_max_moy
|
||||||
|
) # le dataframe
|
||||||
# Renomme les colonnes
|
# Renomme les colonnes
|
||||||
|
|
||||||
cols = [
|
cols = [
|
||||||
get_colonne_df(aggregat, self.tag, champ, cohorte, critere)
|
get_colonne_df(aggregat, self.tag, champ, cohorte, critere)
|
||||||
for critere in pe_moy.Moyenne.COLONNES_SYNTHESE
|
for critere in pe_moy.Moyenne.get_colonnes_synthese(
|
||||||
|
with_min_max_moy=with_min_max_moy
|
||||||
|
)
|
||||||
]
|
]
|
||||||
df_champ.columns = cols
|
df_champ.columns = cols
|
||||||
df = df.join(df_champ)
|
df = df.join(df_champ)
|
||||||
|
|
||||||
# Ajoute la moy générale
|
# Ajoute la moy générale
|
||||||
df_moy_gen = self.moyenne_gen.get_df_synthese()
|
df_moy_gen = self.moyenne_gen.get_df_synthese(with_min_max_moy=with_min_max_moy)
|
||||||
cols = [
|
cols = [
|
||||||
get_colonne_df(aggregat, self.tag, CHAMP_GENERAL, cohorte, critere)
|
get_colonne_df(aggregat, self.tag, CHAMP_GENERAL, cohorte, critere)
|
||||||
for critere in pe_moy.Moyenne.COLONNES_SYNTHESE
|
for critere in pe_moy.Moyenne.get_colonnes_synthese(
|
||||||
|
with_min_max_moy=with_min_max_moy
|
||||||
|
)
|
||||||
]
|
]
|
||||||
df_moy_gen.columns = cols
|
df_moy_gen.columns = cols
|
||||||
df = df.join(df_moy_gen)
|
df = df.join(df_moy_gen)
|
||||||
|
@ -89,6 +89,7 @@ class TableTag(object):
|
|||||||
aggregat=None,
|
aggregat=None,
|
||||||
tags_cibles=None,
|
tags_cibles=None,
|
||||||
cohorte=None,
|
cohorte=None,
|
||||||
|
options={"min_max_moy": True},
|
||||||
) -> pd.DataFrame:
|
) -> pd.DataFrame:
|
||||||
"""Renvoie un dataframe listant toutes les données
|
"""Renvoie un dataframe listant toutes les données
|
||||||
des moyennes/classements/nb_inscrits/min/max/moy
|
des moyennes/classements/nb_inscrits/min/max/moy
|
||||||
@ -126,7 +127,7 @@ class TableTag(object):
|
|||||||
for tag in tags_cibles:
|
for tag in tags_cibles:
|
||||||
if tag in self.moyennes_tags:
|
if tag in self.moyennes_tags:
|
||||||
moy_tag_df = self.moyennes_tags[tag].to_df(
|
moy_tag_df = self.moyennes_tags[tag].to_df(
|
||||||
aggregat=aggregat, cohorte=cohorte
|
aggregat=aggregat, cohorte=cohorte, options=options
|
||||||
)
|
)
|
||||||
df = df.join(moy_tag_df)
|
df = df.join(moy_tag_df)
|
||||||
|
|
||||||
|
@ -682,7 +682,7 @@ class JuryPE(object):
|
|||||||
if interclass.is_significatif():
|
if interclass.is_significatif():
|
||||||
# Le dataframe du classement sur le groupe
|
# Le dataframe du classement sur le groupe
|
||||||
df_groupe = interclass.compute_df_synthese_moyennes_tag(
|
df_groupe = interclass.compute_df_synthese_moyennes_tag(
|
||||||
tag, aggregat=aggregat, type_colonnes=False
|
tag, aggregat=aggregat, type_colonnes=False, options=self.options
|
||||||
)
|
)
|
||||||
if not df_groupe.empty:
|
if not df_groupe.empty:
|
||||||
aff_aggregat += [aggregat]
|
aff_aggregat += [aggregat]
|
||||||
@ -694,6 +694,7 @@ class JuryPE(object):
|
|||||||
aggregat=aggregat,
|
aggregat=aggregat,
|
||||||
tags_cibles=[tag],
|
tags_cibles=[tag],
|
||||||
cohorte="Promo",
|
cohorte="Promo",
|
||||||
|
options=self.options,
|
||||||
)
|
)
|
||||||
|
|
||||||
if not df_promo.empty:
|
if not df_promo.empty:
|
||||||
|
Loading…
Reference in New Issue
Block a user