diff --git a/app/but/jury_but.py b/app/but/jury_but.py index 12e14bfb8..227ead81c 100644 --- a/app/but/jury_but.py +++ b/app/but/jury_but.py @@ -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"
{expl_rcues}
" 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,7 +775,8 @@ class DecisionsProposeesAnnee(DecisionsProposees): etudid=self.etud.id, msg=f"Validation année BUT{self.annee_but}: {code}", ) - self.recorded = True + if mark_recorded: + self.recorded = True self.invalidate_formsemestre_cache() return True diff --git a/app/scodoc/codes_cursus.py b/app/scodoc/codes_cursus.py index 228fb6d25..6c4336a42 100644 --- a/app/scodoc/codes_cursus.py +++ b/app/scodoc/codes_cursus.py @@ -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