diff --git a/app/api/justificatifs.py b/app/api/justificatifs.py index f753fc0e0f..a85685f7e5 100644 --- a/app/api/justificatifs.py +++ b/app/api/justificatifs.py @@ -457,7 +457,7 @@ def justif_edit(justif_id: int): "après": compute_assiduites_justified( justificatif_unique.etudid, [justificatif_unique], - False, + True, ), } } diff --git a/app/models/assiduites.py b/app/models/assiduites.py index 3fc6d87871..82b6d3dc3e 100644 --- a/app/models/assiduites.py +++ b/app/models/assiduites.py @@ -362,9 +362,17 @@ def compute_assiduites_justified( for assi in assiduites: if assi.etat == EtatAssiduite.PRESENT: continue + + assi_justificatifs = Justificatif.query.filter( + Justificatif.etudid == assi.etudid, + Justificatif.date_debut <= assi.date_debut, + Justificatif.date_fin >= assi.date_fin, + Justificatif.etat == EtatJustificatif.VALIDE, + ).all() + if any( assi.date_debut >= j.date_debut and assi.date_fin <= j.date_fin - for j in justificatifs + for j in justificatifs + assi_justificatifs ): assi.est_just = True assiduites_justifiees.append(assi.assiduite_id)