diff --git a/app/but/jury_but.py b/app/but/jury_but.py
index 12e14bfb82..227ead81c4 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 228fb6d25a..6c4336a420 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