Fix: calcul des moyennes de modules avec poids d'évaluations

This commit is contained in:
Emmanuel Viennet 2023-12-12 19:12:46 +01:00
parent b9c1eccc98
commit d7d6d688ff
2 changed files with 4 additions and 4 deletions

View File

@ -419,11 +419,10 @@ def load_evaluations_poids(moduleimpl_id: int) -> tuple[pd.DataFrame, list]:
Résultat: (evals_poids, liste de UEs du semestre sauf le sport) Résultat: (evals_poids, liste de UEs du semestre sauf le sport)
""" """
modimpl: ModuleImpl = db.session.get(ModuleImpl, moduleimpl_id) modimpl = db.session.get(ModuleImpl, moduleimpl_id)
evaluations = Evaluation.query.filter_by(moduleimpl_id=moduleimpl_id).all()
ues = modimpl.formsemestre.get_ues(with_sport=False) ues = modimpl.formsemestre.get_ues(with_sport=False)
ue_ids = [ue.id for ue in ues] ue_ids = [ue.id for ue in ues]
evaluation_ids = [evaluation.id for evaluation in evaluations] evaluation_ids = [evaluation.id for evaluation in modimpl.evaluations]
evals_poids = pd.DataFrame(columns=ue_ids, index=evaluation_ids, dtype=float) evals_poids = pd.DataFrame(columns=ue_ids, index=evaluation_ids, dtype=float)
if ( if (
modimpl.module.module_type == ModuleType.RESSOURCE modimpl.module.module_type == ModuleType.RESSOURCE
@ -434,7 +433,7 @@ def load_evaluations_poids(moduleimpl_id: int) -> tuple[pd.DataFrame, list]:
).filter_by(moduleimpl_id=moduleimpl_id): ).filter_by(moduleimpl_id=moduleimpl_id):
try: try:
evals_poids[ue_poids.ue_id][ue_poids.evaluation_id] = ue_poids.poids evals_poids[ue_poids.ue_id][ue_poids.evaluation_id] = ue_poids.poids
except KeyError as exc: except KeyError:
pass # poids vers des UE qui n'existent plus ou sont dans un autre semestre... pass # poids vers des UE qui n'existent plus ou sont dans un autre semestre...
# Initialise poids non enregistrés: # Initialise poids non enregistrés:

View File

@ -276,6 +276,7 @@ class Evaluation(db.Model):
db.session.add(e) db.session.add(e)
i += 1 i += 1
db.session.commit() db.session.commit()
sco_cache.invalidate_formsemestre(moduleimpl.formsemestre_id)
def descr_heure(self) -> str: def descr_heure(self) -> str:
"Description de la plage horaire pour affichages ('de 13h00 à 14h00')" "Description de la plage horaire pour affichages ('de 13h00 à 14h00')"