From dae04658b767b9a7194f9d8dda8823de9d91f77c Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
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":
--
GitLab