From 1d3ccb565a58bbf5cc85066ae5c22c76e570e016 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Sat, 25 Jun 2022 17:00:00 +0200 Subject: [PATCH] Fix: enregistrement code jury BUT --- app/but/jury_but.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/but/jury_but.py b/app/but/jury_but.py index 840933c0..543a29ee 100644 --- a/app/but/jury_but.py +++ b/app/but/jury_but.py @@ -480,7 +480,7 @@ class DecisionsProposeesAnnee(DecisionsProposees): - 'code_annee' : 'ADM' code pour l'année Si les code_rcue et le code_annee ne sont pas fournis, - enregistre ceux par défaut. + et qu'il n'y en a pas déjà, enregistre ceux par défaut. """ for key in form: code = form[key] @@ -508,13 +508,15 @@ class DecisionsProposeesAnnee(DecisionsProposees): self.record_all() db.session.commit() - def record(self, code: str): - """Enregistre le code""" + def record(self, code: str, no_overwrite=False): + """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é. + """ if code and not code in self.codes: raise ScoValueError( f"code annee {html.escape(code)} invalide pour formsemestre {html.escape(self.formsemestre)}" ) - if code == self.code_valide: + if code == self.code_valide or (self.code_valide is not None and no_overwrite): self.recorded = True return # no change if self.validation: @@ -556,9 +558,7 @@ class DecisionsProposeesAnnee(DecisionsProposees): self.recorded = True def record_all(self): - """Enregistre les codes qui n'ont pas été spécifiés par le formulaire, - et sont donc en mode "automatique" - """ + """Enregistre les codes qui n'ont pas été spécifiés par le formulaire, et sont donc en mode "automatique" """ decisions = ( list(self.decisions_ues.values()) + list(self.decisions_rcue_by_niveau.values()) @@ -568,8 +568,8 @@ class DecisionsProposeesAnnee(DecisionsProposees): if not dec.recorded: # rappel: le code par défaut est en tête code = dec.codes[0] if dec.codes else None - # s'il n'y a pas de codee, efface - dec.record(dec.codes[0]) + # s'il n'y a pas de code, efface + dec.record(code, no_overwrite=True) def erase(self): """Efface les décisions de jury de cet étudiant @@ -631,13 +631,13 @@ class DecisionsProposeesRCUE(DecisionsProposees): else: self.codes.insert(0, sco_codes.AJ) - def record(self, code: str): + def record(self, code: str, no_overwrite=False): """Enregistre le code""" if code and not code in self.codes: raise ScoValueError( f"code UE invalide pour ue_id={self.ue.id}: {html.escape(code)}" ) - if code == self.code_valide: + if code == self.code_valide or (self.code_valide is not None and no_overwrite): self.recorded = True return # no change parcours_id = self.parcour.id if self.parcour is not None else None @@ -747,13 +747,13 @@ class DecisionsProposeesUE(DecisionsProposees): self.codes = [sco_codes.AJ, sco_codes.ADJ] + self.codes self.explanation = "notes insuffisantes" - def record(self, code: str): + def record(self, code: str, no_overwrite=False): """Enregistre le code""" if code and not code in self.codes: raise ScoValueError( f"code UE invalide pour ue_id={self.ue.id}: {html.escape(code)}" ) - if code == self.code_valide: + if code == self.code_valide or (self.code_valide is not None and no_overwrite): self.recorded = True return # no change if self.validation: