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( self.validation = ApcValidationAnnee.query.filter_by(
etudid=self.etud.id, etudid=self.etud.id,
formation_id=self.formsemestre.formation_id, formation_id=self.formsemestre.formation_id,
formsemestre_id=formsemestre_impair.id,
ordre=self.annee_but, ordre=self.annee_but,
).first() ).first()
else: else:
@ -417,6 +416,9 @@ class DecisionsProposeesAnnee(DecisionsProposees):
self.formsemestre_impair and self.formsemestre_impair.modalite == "EXT" self.formsemestre_impair and self.formsemestre_impair.modalite == "EXT"
) or (self.formsemestre_pair and self.formsemestre_pair.modalite == "EXT"): ) or (self.formsemestre_pair and self.formsemestre_pair.modalite == "EXT"):
self.codes.insert(0, sco_codes.ADM) 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>" self.explanation = f"<div>{expl_rcues}</div>"
messages = self.descr_pb_coherence() messages = self.descr_pb_coherence()
if messages: if messages:
@ -730,16 +732,18 @@ 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) self.record(code_annee, mark_recorded=False)
self.record_autorisation_inscription(code_annee) self.record_autorisation_inscription(code_annee)
self.record_all() self.record_all()
self.recorded = True
db.session.commit() 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. """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 no_overwrite, ne fait rien si un code est déjà enregistré.
Si l'étudiant est DEM ou DEF, ne fait rien. Si l'étudiant est DEM ou DEF, ne fait rien.
Si mark_recorded est vrai, positionne self.recorded
""" """
if self.inscription_etat != scu.INSCRIT: if self.inscription_etat != scu.INSCRIT:
return False return False
@ -771,6 +775,7 @@ 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:
self.recorded = True self.recorded = True
self.invalidate_formsemestre_cache() self.invalidate_formsemestre_cache()
return True return True

View File

@ -207,7 +207,7 @@ CODES_RCUE_VALIDES = CODES_RCUE_VALIDES_DE_DROIT | {ADJ, ADSUP}
"Niveau RCUE validé" "Niveau RCUE validé"
# Pour le BUT: # 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_BUT_VALIDES = {ADM, ADSUP}
CODES_ANNEE_ARRET = {DEF, DEM, ABAN, ABL} CODES_ANNEE_ARRET = {DEF, DEM, ABAN, ABL}
BUT_BARRE_UE8 = 8.0 - NOTES_TOLERANCE BUT_BARRE_UE8 = 8.0 - NOTES_TOLERANCE