forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -629,6 +629,11 @@ def compute_assiduites_justified(
|
|||||||
list[int]: la liste des assiduités qui ont été justifiées.
|
list[int]: la liste des assiduités qui ont été justifiées.
|
||||||
"""
|
"""
|
||||||
# TODO à optimiser (car très long avec 40000 assiduités)
|
# 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
|
# Si on ne donne pas de justificatifs on prendra par défaut tous les justificatifs de l'étudiant
|
||||||
if justificatifs is None:
|
if justificatifs is None:
|
||||||
justificatifs: list[Justificatif] = Justificatif.query.filter_by(
|
justificatifs: list[Justificatif] = Justificatif.query.filter_by(
|
||||||
|
@ -726,7 +726,12 @@ def _record_justificatif_etud(
|
|||||||
db.session.rollback()
|
db.session.rollback()
|
||||||
return False
|
return False
|
||||||
db.session.commit()
|
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)
|
scass.simple_invalidate_cache(justif.to_dict(), etud.id)
|
||||||
flash(message)
|
flash(message)
|
||||||
return True
|
return True
|
||||||
|
Loading…
Reference in New Issue
Block a user