Fix enregistrement jury année BUT et passage en mode auto

This commit is contained in:
Emmanuel Viennet 2023-06-15 16:50:22 +02:00
parent e46ae76399
commit 008dd9b50e
2 changed files with 10 additions and 5 deletions

View File

@ -279,7 +279,6 @@ class DecisionsProposeesAnnee(DecisionsProposees):
self.validation = ApcValidationAnnee.query.filter_by(
etudid=self.etud.id,
formation_id=self.formsemestre.formation_id,
formsemestre_id=formsemestre_impair.id,
ordre=self.annee_but,
).first()
else:
@ -417,6 +416,9 @@ class DecisionsProposeesAnnee(DecisionsProposees):
self.formsemestre_impair and self.formsemestre_impair.modalite == "EXT"
) or (self.formsemestre_pair and self.formsemestre_pair.modalite == "EXT"):
self.codes.insert(0, sco_codes.ADM)
# Si validée par niveau supérieur:
if self.code_valide == sco_codes.ADSUP:
self.codes.insert(0, sco_codes.ADSUP)
self.explanation = f"<div>{expl_rcues}</div>"
messages = self.descr_pb_coherence()
if messages:
@ -730,16 +732,18 @@ class DecisionsProposeesAnnee(DecisionsProposees):
dec_ue.record(code)
for dec_rcue, code in codes_rcues:
dec_rcue.record(code)
self.record(code_annee)
self.record(code_annee, mark_recorded=False)
self.record_autorisation_inscription(code_annee)
self.record_all()
self.recorded = True
db.session.commit()
def record(self, code: str, no_overwrite=False) -> bool:
def record(self, code: str, no_overwrite=False, mark_recorded: bool = True) -> bool:
"""Enregistre le code de l'année, et au besoin l'autorisation d'inscription.
Si no_overwrite, ne fait rien si un code est déjà enregistré.
Si l'étudiant est DEM ou DEF, ne fait rien.
Si mark_recorded est vrai, positionne self.recorded
"""
if self.inscription_etat != scu.INSCRIT:
return False
@ -771,6 +775,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
etudid=self.etud.id,
msg=f"Validation année BUT{self.annee_but}: {code}",
)
if mark_recorded:
self.recorded = True
self.invalidate_formsemestre_cache()
return True

View File

@ -207,7 +207,7 @@ CODES_RCUE_VALIDES = CODES_RCUE_VALIDES_DE_DROIT | {ADJ, ADSUP}
"Niveau RCUE validé"
# Pour le BUT:
CODES_ANNEE_BUT_VALIDES_DE_DROIT = {ADM} # PASD était ici mais retiré en juin 23
CODES_ANNEE_BUT_VALIDES_DE_DROIT = {ADM, PASD} # PASD pour enregistrement auto
CODES_ANNEE_BUT_VALIDES = {ADM, ADSUP}
CODES_ANNEE_ARRET = {DEF, DEM, ABAN, ABL}
BUT_BARRE_UE8 = 8.0 - NOTES_TOLERANCE