Fix: bug assiduites stats

This commit is contained in:
Emmanuel Viennet 2024-01-21 23:15:44 +01:00
parent f842fa0b4f
commit dae04658b7
2 changed files with 10 additions and 2 deletions

View File

@ -170,7 +170,7 @@ class CountCalculator:
"""Récupère une clé de dictionnaire en fonction de l'état de l'assiduité """Récupère une clé de dictionnaire en fonction de l'état de l'assiduité
et si elle est justifié et si elle est justifié
""" """
keys: dict[EtatAssiduite, str] = { keys: dict[scu.EtatAssiduite, str] = {
scu.EtatAssiduite.ABSENT: "absent", scu.EtatAssiduite.ABSENT: "absent",
scu.EtatAssiduite.RETARD: "retard", scu.EtatAssiduite.RETARD: "retard",
scu.EtatAssiduite.PRESENT: "present", scu.EtatAssiduite.PRESENT: "present",
@ -349,6 +349,11 @@ def get_assiduites_stats(
assiduites: Query, metric: str = "all", filtered: dict[str, object] = None assiduites: Query, metric: str = "all", filtered: dict[str, object] = None
) -> dict[str, int | float]: ) -> dict[str, int | float]:
"""Compte les assiduités en fonction des filtres""" """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: if filtered is not None:
deb, fin = None, None deb, fin = None, None
@ -399,6 +404,9 @@ def get_assiduites_stats(
# Préparation du dictionnaire de retour avec les valeurs du calcul # Préparation du dictionnaire de retour avec les valeurs du calcul
count: dict = calculator.to_dict(only_total=False) count: dict = calculator.to_dict(only_total=False)
for etat in etats: 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": if etat != "present":
output[etat] = count[etat] output[etat] = count[etat]
output[etat]["justifie"] = count[etat + "_just"] output[etat]["justifie"] = count[etat + "_just"]

View File

@ -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(): for etat, valeur in retour.items():
valeur[1] = compte_etat[etat][assi_metric] valeur[1] = compte_etat[etat][assi_metric]
if etat != "present": if etat != "present":