From dae04658b767b9a7194f9d8dda8823de9d91f77c Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Sun, 21 Jan 2024 23:15:44 +0100 Subject: [PATCH] Fix: bug assiduites stats --- app/scodoc/sco_assiduites.py | 10 +++++++++- app/tables/visu_assiduites.py | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/scodoc/sco_assiduites.py b/app/scodoc/sco_assiduites.py index 6b65b2791..fd3098665 100644 --- a/app/scodoc/sco_assiduites.py +++ b/app/scodoc/sco_assiduites.py @@ -170,7 +170,7 @@ class CountCalculator: """Récupère une clé de dictionnaire en fonction de l'état de l'assiduité et si elle est justifié """ - keys: dict[EtatAssiduite, str] = { + keys: dict[scu.EtatAssiduite, str] = { scu.EtatAssiduite.ABSENT: "absent", scu.EtatAssiduite.RETARD: "retard", scu.EtatAssiduite.PRESENT: "present", @@ -349,6 +349,11 @@ def get_assiduites_stats( assiduites: Query, metric: str = "all", filtered: dict[str, object] = None ) -> dict[str, int | float]: """Compte les assiduités en fonction des filtres""" + # XXX TODO-assiduite : documenter !!! + # Que sont les filtres ? Quelles valeurs ? + # documenter permet de faire moins de bug: qualité du code non satisfaisante. + # + # + on se perd entre les clés en majuscules et en minuscules. Pourquoi if filtered is not None: deb, fin = None, None @@ -399,6 +404,9 @@ def get_assiduites_stats( # Préparation du dictionnaire de retour avec les valeurs du calcul count: dict = calculator.to_dict(only_total=False) for etat in etats: + # TODO-assiduite: on se perd entre les lower et upper. + # Pourquoi EtatAssiduite est en majuscules si tout le reste est en minuscules ? + etat = etat.lower() if etat != "present": output[etat] = count[etat] output[etat]["justifie"] = count[etat + "_just"] diff --git a/app/tables/visu_assiduites.py b/app/tables/visu_assiduites.py index ed37c287b..f9acbd839 100644 --- a/app/tables/visu_assiduites.py +++ b/app/tables/visu_assiduites.py @@ -162,7 +162,7 @@ class RowAssi(tb.Row): }, ) - # Pour chaque état on mets à jour les valeurs de retour + # Pour chaque état on met à jour les valeurs de retour for etat, valeur in retour.items(): valeur[1] = compte_etat[etat][assi_metric] if etat != "present":