diff --git a/app/models/evaluations.py b/app/models/evaluations.py index 0cf03680..d83f090b 100644 --- a/app/models/evaluations.py +++ b/app/models/evaluations.py @@ -112,7 +112,7 @@ class Evaluation(db.Model): for ue_id, poids in ue_poids_dict.items(): ue = UniteEns.query.get(ue_id) L.append(EvaluationUEPoids(evaluation=self, ue=ue, poids=poids)) - self.ue_poids = L + self.ue_poids = L # backref # pylint:disable=attribute-defined-outside-init self.moduleimpl.invalidate_evaluations_poids() # inval cache def update_ue_poids_dict(self, ue_poids_dict: dict) -> None: @@ -121,8 +121,18 @@ class Evaluation(db.Model): current.update(ue_poids_dict) self.set_ue_poids_dict(current) - def get_ue_poids_dict(self) -> dict: - """returns { ue_id : poids }""" + def get_ue_poids_dict(self, sort=False) -> dict: + """returns { ue_id : poids } + Si sort, trie par UE + """ + if sort: + return { + p.ue.id: p.poids + for p in sorted( + self.ue_poids, key=lambda p: (p.ue.numero or 0, p.ue.acronyme) + ) + } + return {p.ue.id: p.poids for p in self.ue_poids} def get_ue_poids_str(self) -> str: diff --git a/app/scodoc/sco_moduleimpl_status.py b/app/scodoc/sco_moduleimpl_status.py index a09c0731..852dbd9d 100644 --- a/app/scodoc/sco_moduleimpl_status.py +++ b/app/scodoc/sco_moduleimpl_status.py @@ -787,7 +787,7 @@ def _ligne_evaluation( def _evaluation_poids_html(evaluation: Evaluation) -> str: """graphe html montrant les poids de l'évaluation""" - ue_poids = evaluation.get_ue_poids_dict() # { ue_id : poids } + ue_poids = evaluation.get_ue_poids_dict(sort=True) # { ue_id : poids } if not ue_poids: return max_poids = max(ue_poids.values())