Fix: jury BUT si une UE a été déassociée depuis la validation

This commit is contained in:
Emmanuel Viennet 2024-02-09 13:47:48 +01:00
parent f4c1d00046
commit 177d38428e
3 changed files with 10 additions and 4 deletions

View File

@ -119,9 +119,13 @@ class EtudCursusBUT:
self.validation_par_competence_et_annee = {} self.validation_par_competence_et_annee = {}
"""{ competence_id : { 'BUT1' : validation_rcue (la "meilleure"), ... } }""" """{ competence_id : { 'BUT1' : validation_rcue (la "meilleure"), ... } }"""
validation_rcue: ApcValidationRCUE
for validation_rcue in ApcValidationRCUE.query.filter_by(etud=etud): for validation_rcue in ApcValidationRCUE.query.filter_by(etud=etud):
niveau = validation_rcue.niveau() niveau = validation_rcue.niveau()
if not niveau.competence.id in self.validation_par_competence_et_annee: if (
niveau is None
or not niveau.competence.id in self.validation_par_competence_et_annee
):
self.validation_par_competence_et_annee[niveau.competence.id] = {} self.validation_par_competence_et_annee[niveau.competence.id] = {}
previous_validation = self.validation_par_competence_et_annee.get( previous_validation = self.validation_par_competence_et_annee.get(
niveau.competence.id niveau.competence.id

View File

@ -77,10 +77,12 @@ class ApcValidationRCUE(db.Model):
niveau = self.niveau() niveau = self.niveau()
return niveau.annee if niveau else None return niveau.annee if niveau else None
def niveau(self) -> ApcNiveau: def niveau(self) -> ApcNiveau | None:
"""Le niveau de compétence associé à cet RCUE.""" """Le niveau de compétence associé à cet RCUE."""
# Par convention, il est donné par la seconde UE # Par convention, il est donné par la seconde UE
return self.ue2.niveau_competence # à défaut (si l'UE a été désacciée entre temps), la première
# et à défaut, renvoie None
return self.ue2.niveau_competence or self.ue1.niveau_competence
def to_dict(self): def to_dict(self):
"as a dict" "as a dict"

View File

@ -1,7 +1,7 @@
# -*- mode: python -*- # -*- mode: python -*-
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
SCOVERSION = "9.6.937" SCOVERSION = "9.6.938"
SCONAME = "ScoDoc" SCONAME = "ScoDoc"