forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -628,6 +628,11 @@ def compute_assiduites_justified(
|
||||
list[int]: la liste des assiduités qui ont été justifiées.
|
||||
"""
|
||||
# TODO à optimiser (car très long avec 40000 assiduités)
|
||||
# On devrait :
|
||||
# - récupérer uniquement les assiduités qui sont sur la période des justificatifs donnés
|
||||
# - Pour chaque assiduité trouvée, il faut récupérer les justificatifs qui la justifie
|
||||
# - Si au moins un justificatif valide couvre la période de l'assiduité alors on la justifie
|
||||
|
||||
# Si on ne donne pas de justificatifs on prendra par défaut tous les justificatifs de l'étudiant
|
||||
if justificatifs is None:
|
||||
justificatifs: list[Justificatif] = Justificatif.query.filter_by(
|
||||
|
@ -726,7 +726,12 @@ def _record_justificatif_etud(
|
||||
db.session.rollback()
|
||||
return False
|
||||
db.session.commit()
|
||||
compute_assiduites_justified(etud.id, [justif])
|
||||
# FIX TEMPORAIRE:
|
||||
# on reprend toutes les assiduités et tous les justificatifs
|
||||
# pour utiliser le "reset" (remise en "non_just") des assiduités
|
||||
# (à terme, il faudrait ne recalculer que les assiduités impactées)
|
||||
# VOIR TODO dans compute_assiduites_justified
|
||||
compute_assiduites_justified(etud.id, reset=True)
|
||||
scass.simple_invalidate_cache(justif.to_dict(), etud.id)
|
||||
flash(message)
|
||||
return True
|
||||
|
Loading…
Reference in New Issue
Block a user