Jury BUT: corrige enregistrement décisions d'annee BUT manuelles

This commit is contained in:
Emmanuel Viennet 2023-06-21 16:47:24 +02:00 committed by iziram
parent 41e065f6ab
commit 2af2ca6c43
3 changed files with 10 additions and 4 deletions

View File

@ -257,6 +257,8 @@ class DecisionsProposeesAnnee(DecisionsProposees):
self.annee_but = (formsemestre_last.semestre_id + 1) // 2 self.annee_but = (formsemestre_last.semestre_id + 1) // 2
"le rang de l'année dans le BUT: 1, 2, 3" "le rang de l'année dans le BUT: 1, 2, 3"
assert self.annee_but in (1, 2, 3) assert self.annee_but in (1, 2, 3)
self.autorisations_recorded = False
"vrai si on a enregistré l'autorisation de passage"
self.rcues_annee = [] self.rcues_annee = []
"""RCUEs de l'année """RCUEs de l'année
(peuvent concerner l'année scolaire antérieur pour les redoublants (peuvent concerner l'année scolaire antérieur pour les redoublants
@ -751,7 +753,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
dec_ue.record(code) dec_ue.record(code)
for dec_rcue, code in codes_rcues: for dec_rcue, code in codes_rcues:
dec_rcue.record(code) dec_rcue.record(code)
self.record(code_annee, mark_recorded=False) self.record(code_annee) # XXX , mark_recorded=False)
self.record_autorisation_inscription(code_annee) self.record_autorisation_inscription(code_annee)
self.record_all() self.record_all()
self.recorded = True self.recorded = True
@ -794,13 +796,15 @@ class DecisionsProposeesAnnee(DecisionsProposees):
etudid=self.etud.id, etudid=self.etud.id,
msg=f"Validation année BUT{self.annee_but}: {code}", msg=f"Validation année BUT{self.annee_but}: {code}",
) )
if mark_recorded: if mark_recorded:
self.recorded = True self.recorded = True
self.invalidate_formsemestre_cache() self.invalidate_formsemestre_cache()
return True return True
def record_autorisation_inscription(self, code: str): def record_autorisation_inscription(self, code: str):
"""Autorisation d'inscription dans semestre suivant""" """Autorisation d'inscription dans semestre suivant"""
if self.autorisations_recorded:
return
if self.inscription_etat != scu.INSCRIT: if self.inscription_etat != scu.INSCRIT:
# les dem et DEF ne continuent jamais # les dem et DEF ne continuent jamais
return return
@ -815,6 +819,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
self.formsemestre.id, self.formsemestre.id,
next_semestre_id, next_semestre_id,
) )
self.autorisations_recorded = True
def invalidate_formsemestre_cache(self): def invalidate_formsemestre_cache(self):
"invalide le résultats des deux formsemestres" "invalide le résultats des deux formsemestres"

View File

@ -352,6 +352,7 @@ class ApcValidationAnnee(db.Model):
"Affichage html" "Affichage html"
return f"""Validation <b>année BUT{self.ordre}</b> émise par return f"""Validation <b>année BUT{self.ordre}</b> émise par
{self.formsemestre.html_link_status() if self.formsemestre else "-"} {self.formsemestre.html_link_status() if self.formsemestre else "-"}
: <b>{self.code}</b>
le {self.date.strftime("%d/%m/%Y")} à {self.date.strftime("%Hh%M")} le {self.date.strftime("%d/%m/%Y")} à {self.date.strftime("%Hh%M")}
""" """

View File

@ -2497,7 +2497,7 @@ def formsemestre_validation_but(
scodoc_dept=g.scodoc_dept, formsemestre_id=deca.formsemestre_id, scodoc_dept=g.scodoc_dept, formsemestre_id=deca.formsemestre_id,
etudid=deca.etud.id)}" class="stdlink" etudid=deca.etud.id)}" class="stdlink"
title="efface décisions issues des jurys de cette année" title="efface décisions issues des jurys de cette année"
>effacer décisions</a> >effacer décisions de ce jury</a>
<a style="margin-left: 16px;" class="stdlink" <a style="margin-left: 16px;" class="stdlink"
href="{ href="{