BUT: calcul moy. gen. indicative ne considérant que les UE du parcours
This commit is contained in:
parent
7cb98e3f31
commit
7ca3290357
@ -52,13 +52,16 @@ def compute_sem_moys_apc_using_coefs(
|
|||||||
|
|
||||||
|
|
||||||
def compute_sem_moys_apc_using_ects(
|
def compute_sem_moys_apc_using_ects(
|
||||||
etud_moy_ue_df: pd.DataFrame, ects: list, formation_id=None, skip_empty_ues=False
|
etud_moy_ue_df: pd.DataFrame,
|
||||||
|
ects_df: pd.DataFrame,
|
||||||
|
formation_id=None,
|
||||||
|
skip_empty_ues=False,
|
||||||
) -> pd.Series:
|
) -> pd.Series:
|
||||||
"""Calcule les moyennes générales indicatives de tous les étudiants
|
"""Calcule les moyennes générales indicatives de tous les étudiants
|
||||||
= moyenne des moyennes d'UE, pondérée par leurs ECTS.
|
= moyenne des moyennes d'UE, pondérée par leurs ECTS.
|
||||||
|
|
||||||
etud_moy_ue_df: DataFrame, colonnes ue_id, lignes etudid
|
etud_moy_ue_df: DataFrame, colonnes ue_id, lignes etudid
|
||||||
ects: liste de floats ou None, 1 par UE
|
ects: DataFrame, col. ue_id, lignes etudid, valeur float ou None
|
||||||
|
|
||||||
Si skip_empty_ues: ne compte pas les UE non notées.
|
Si skip_empty_ues: ne compte pas les UE non notées.
|
||||||
Sinon (par défaut), une UE non notée compte comme zéro.
|
Sinon (par défaut), une UE non notée compte comme zéro.
|
||||||
@ -68,11 +71,11 @@ def compute_sem_moys_apc_using_ects(
|
|||||||
try:
|
try:
|
||||||
if skip_empty_ues:
|
if skip_empty_ues:
|
||||||
# annule les coefs des UE sans notes (NaN)
|
# annule les coefs des UE sans notes (NaN)
|
||||||
ects = np.where(etud_moy_ue_df.isna(), 0.0, np.array(ects, dtype=float))
|
ects = np.where(etud_moy_ue_df.isna(), 0.0, ects_df.to_numpy())
|
||||||
# ects est devenu nb_etuds x nb_ues
|
|
||||||
moy_gen = (etud_moy_ue_df * ects).sum(axis=1) / ects.sum(axis=1)
|
|
||||||
else:
|
else:
|
||||||
moy_gen = (etud_moy_ue_df * ects).sum(axis=1) / sum(ects)
|
ects = ects_df.to_numpy()
|
||||||
|
# ects est maintenant un array nb_etuds x nb_ues
|
||||||
|
moy_gen = (etud_moy_ue_df * ects).sum(axis=1) / ects.sum(axis=1)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
if None in ects:
|
if None in ects:
|
||||||
formation = Formation.query.get(formation_id)
|
formation = Formation.query.get(formation_id)
|
||||||
|
@ -114,6 +114,10 @@ class ResultatsSemestreBUT(NotesTableCompat):
|
|||||||
|
|
||||||
# Nanifie les moyennes d'UE hors parcours pour chaque étudiant
|
# Nanifie les moyennes d'UE hors parcours pour chaque étudiant
|
||||||
self.etud_moy_ue *= self.ues_inscr_parcours_df
|
self.etud_moy_ue *= self.ues_inscr_parcours_df
|
||||||
|
# Les ects (utilisés comme coefs) sont nuls pour les UE hors parcours:
|
||||||
|
ects = self.ues_inscr_parcours_df.fillna(0.0) * [
|
||||||
|
ue.ects for ue in self.ues if ue.type != UE_SPORT
|
||||||
|
]
|
||||||
|
|
||||||
# Moyenne générale indicative:
|
# Moyenne générale indicative:
|
||||||
# (note: le bonus sport a déjà été appliqué aux moyennes d'UE, et impacte
|
# (note: le bonus sport a déjà été appliqué aux moyennes d'UE, et impacte
|
||||||
@ -123,7 +127,7 @@ class ResultatsSemestreBUT(NotesTableCompat):
|
|||||||
# )
|
# )
|
||||||
self.etud_moy_gen = moy_sem.compute_sem_moys_apc_using_ects(
|
self.etud_moy_gen = moy_sem.compute_sem_moys_apc_using_ects(
|
||||||
self.etud_moy_ue,
|
self.etud_moy_ue,
|
||||||
[ue.ects for ue in self.ues if ue.type != UE_SPORT],
|
ects,
|
||||||
formation_id=self.formsemestre.formation_id,
|
formation_id=self.formsemestre.formation_id,
|
||||||
skip_empty_ues=sco_preferences.get_preference(
|
skip_empty_ues=sco_preferences.get_preference(
|
||||||
"but_moy_skip_empty_ues", self.formsemestre.id
|
"but_moy_skip_empty_ues", self.formsemestre.id
|
||||||
|
@ -439,7 +439,7 @@ class ResultatsSemestre(ResultatsCache):
|
|||||||
allow_html=True,
|
allow_html=True,
|
||||||
):
|
):
|
||||||
"""Table récap. des résultats.
|
"""Table récap. des résultats.
|
||||||
allow_html: si vri, peut-mettre du HTML dans les valeurs
|
allow_html: si vrai, peut mettre du HTML dans les valeurs
|
||||||
|
|
||||||
Result: tuple avec
|
Result: tuple avec
|
||||||
- rows: liste de dicts { column_id : value }
|
- rows: liste de dicts { column_id : value }
|
||||||
|
Loading…
Reference in New Issue
Block a user