From 943604996b681fca90ac8a8a13c342eed6c02ec8 Mon Sep 17 00:00:00 2001 From: Iziram Date: Mon, 8 Jan 2024 19:01:54 +0100 Subject: [PATCH] Assiduites : fix compte abs negatif + prob cache --- app/scodoc/sco_assiduites.py | 17 +++-------------- app/views/assiduites.py | 4 ++++ tests/unit/test_assiduites.py | 2 ++ 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/app/scodoc/sco_assiduites.py b/app/scodoc/sco_assiduites.py index f46205ad..00bc4922 100644 --- a/app/scodoc/sco_assiduites.py +++ b/app/scodoc/sco_assiduites.py @@ -656,27 +656,16 @@ def get_assiduites_count_in_interval( assiduites: Query = Assiduite.query.filter_by(etudid=etudid) assiduites = assiduites.filter(Assiduite.etat == scu.EtatAssiduite.ABSENT) - justificatifs: Justificatif = Justificatif.query.filter_by(etudid=etudid) - assiduites = filter_by_date(assiduites, Assiduite, date_debut, date_fin) if moduleimpl_id is not None: assiduites = assiduites.filter_by(moduleimpl_id=moduleimpl_id) - justificatifs = filter_by_date( - justificatifs, Justificatif, date_debut, date_fin - ) calculator: CountCalculator = CountCalculator() calculator.compute_assiduites(assiduites) - nb_abs: dict = calculator.to_dict()[metrique] - - abs_just: list[Assiduite] = get_all_justified( - etudid, date_debut, date_fin, moduleimpl_id - ) - - calculator.reset() - calculator.compute_assiduites(abs_just) - nb_abs_just: dict = calculator.to_dict()[metrique] + calcul : dict = calculator.to_dict(only_total=False) + nb_abs: dict = calcul["absent"][metrique] + nb_abs_just: dict = calcul["absent_just"][metrique] r = (nb_abs, nb_abs_just) if moduleimpl_id is None: diff --git a/app/views/assiduites.py b/app/views/assiduites.py index 11406ee6..8317702b 100644 --- a/app/views/assiduites.py +++ b/app/views/assiduites.py @@ -473,6 +473,10 @@ def _record_assiduite_etud( ) db.session.add(ass) db.session.commit() + + # Invalider cache + scass.simple_invalidate_cache(ass.to_dict(), etud.id) + return True except ScoValueError as exc: form.set_error(f"Erreur: {exc.args[0]}") diff --git a/tests/unit/test_assiduites.py b/tests/unit/test_assiduites.py index 7ea636a2..3f2d40da 100644 --- a/tests/unit/test_assiduites.py +++ b/tests/unit/test_assiduites.py @@ -405,6 +405,8 @@ def _get_justi( def essais_cache(etudid, sems: tuple[FormSemestre], moduleimpls: list[ModuleImpl]): """Vérification des fonctionnalités du cache""" + # TODO faire un test séparé du test_general + # voir test_calcul_assiduites pour faire date_deb: str = "2022-09-01T07:00" date_fin: str = "2023-01-31T19:00"