forked from ScoDoc/ScoDoc
Fix: enregistrement code jury BUT
This commit is contained in:
parent
01d28eac90
commit
1d3ccb565a
@ -480,7 +480,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
|||||||
- 'code_annee' : 'ADM' code pour l'année
|
- 'code_annee' : 'ADM' code pour l'année
|
||||||
|
|
||||||
Si les code_rcue et le code_annee ne sont pas fournis,
|
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:
|
for key in form:
|
||||||
code = form[key]
|
code = form[key]
|
||||||
@ -508,13 +508,15 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
|||||||
self.record_all()
|
self.record_all()
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
def record(self, code: str):
|
def record(self, code: str, no_overwrite=False):
|
||||||
"""Enregistre le code"""
|
"""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:
|
if code and not code in self.codes:
|
||||||
raise ScoValueError(
|
raise ScoValueError(
|
||||||
f"code annee <tt>{html.escape(code)}</tt> invalide pour formsemestre {html.escape(self.formsemestre)}"
|
f"code annee <tt>{html.escape(code)}</tt> 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
|
self.recorded = True
|
||||||
return # no change
|
return # no change
|
||||||
if self.validation:
|
if self.validation:
|
||||||
@ -556,9 +558,7 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
|||||||
self.recorded = True
|
self.recorded = True
|
||||||
|
|
||||||
def record_all(self):
|
def record_all(self):
|
||||||
"""Enregistre les codes qui n'ont pas été spécifiés par le formulaire,
|
"""Enregistre les codes qui n'ont pas été spécifiés par le formulaire, et sont donc en mode "automatique" """
|
||||||
et sont donc en mode "automatique"
|
|
||||||
"""
|
|
||||||
decisions = (
|
decisions = (
|
||||||
list(self.decisions_ues.values())
|
list(self.decisions_ues.values())
|
||||||
+ list(self.decisions_rcue_by_niveau.values())
|
+ list(self.decisions_rcue_by_niveau.values())
|
||||||
@ -568,8 +568,8 @@ class DecisionsProposeesAnnee(DecisionsProposees):
|
|||||||
if not dec.recorded:
|
if not dec.recorded:
|
||||||
# rappel: le code par défaut est en tête
|
# rappel: le code par défaut est en tête
|
||||||
code = dec.codes[0] if dec.codes else None
|
code = dec.codes[0] if dec.codes else None
|
||||||
# s'il n'y a pas de codee, efface
|
# s'il n'y a pas de code, efface
|
||||||
dec.record(dec.codes[0])
|
dec.record(code, no_overwrite=True)
|
||||||
|
|
||||||
def erase(self):
|
def erase(self):
|
||||||
"""Efface les décisions de jury de cet étudiant
|
"""Efface les décisions de jury de cet étudiant
|
||||||
@ -631,13 +631,13 @@ class DecisionsProposeesRCUE(DecisionsProposees):
|
|||||||
else:
|
else:
|
||||||
self.codes.insert(0, sco_codes.AJ)
|
self.codes.insert(0, sco_codes.AJ)
|
||||||
|
|
||||||
def record(self, code: str):
|
def record(self, code: str, no_overwrite=False):
|
||||||
"""Enregistre le code"""
|
"""Enregistre le code"""
|
||||||
if code and not code in self.codes:
|
if code and not code in self.codes:
|
||||||
raise ScoValueError(
|
raise ScoValueError(
|
||||||
f"code UE invalide pour ue_id={self.ue.id}: {html.escape(code)}"
|
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
|
self.recorded = True
|
||||||
return # no change
|
return # no change
|
||||||
parcours_id = self.parcour.id if self.parcour is not None else None
|
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.codes = [sco_codes.AJ, sco_codes.ADJ] + self.codes
|
||||||
self.explanation = "notes insuffisantes"
|
self.explanation = "notes insuffisantes"
|
||||||
|
|
||||||
def record(self, code: str):
|
def record(self, code: str, no_overwrite=False):
|
||||||
"""Enregistre le code"""
|
"""Enregistre le code"""
|
||||||
if code and not code in self.codes:
|
if code and not code in self.codes:
|
||||||
raise ScoValueError(
|
raise ScoValueError(
|
||||||
f"code UE invalide pour ue_id={self.ue.id}: {html.escape(code)}"
|
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
|
self.recorded = True
|
||||||
return # no change
|
return # no change
|
||||||
if self.validation:
|
if self.validation:
|
||||||
|
Loading…
Reference in New Issue
Block a user