Skip to content
Snippets Groups Projects
Commit dae04658 authored by Emmanuel Viennet's avatar Emmanuel Viennet
Browse files

Fix: bug assiduites stats

parent f842fa0b
No related branches found
No related tags found
No related merge requests found
...@@ -170,7 +170,7 @@ class CountCalculator: ...@@ -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( ...@@ -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( ...@@ -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"]
......
...@@ -162,7 +162,7 @@ class RowAssi(tb.Row): ...@@ -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":
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment