From b4c68cea1081ec436af801131d5ef5b3705ff82e Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Fri, 30 Jun 2023 14:23:05 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20calcul=20des=20UEs=20de=20BUT1=20non=20v?= =?UTF-8?q?alid=C3=A9es=20pour=20passage=20en=20BUT3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/but/cursus_but.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/app/but/cursus_but.py b/app/but/cursus_but.py index 5eda000d..34a3295e 100644 --- a/app/but/cursus_but.py +++ b/app/but/cursus_but.py @@ -367,7 +367,7 @@ class FormSemestreCursusBUT: def etud_ues_de_but1_non_validees( etud: Identite, formation: Formation, parcour: ApcParcours ) -> list[UniteEns]: - """Vrai si cet étudiant a validé toutes ses UEs de S1 et S2, dans son parcours""" + """Liste des UEs de S1 et S2 non validées, dans son parcours""" # Les UEs avec décisions, dans les S1 ou S2 d'une formation de même code: validations = ( ScolarFormSemestreValidation.query.filter_by(etudid=etud.id) @@ -377,9 +377,9 @@ def etud_ues_de_but1_non_validees( .join(Formation) .filter_by(formation_code=formation.formation_code) ) - codes_validations_by_ue = collections.defaultdict(list) + codes_validations_by_ue_code = collections.defaultdict(list) for v in validations: - codes_validations_by_ue[v.ue_id].append(v.code) + codes_validations_by_ue_code[v.ue.ue_code].append(v.code) # Les UEs du parcours en S1 et S2: ues = formation.query_ues_parcour(parcour).filter( @@ -390,8 +390,11 @@ def etud_ues_de_but1_non_validees( [ ue for ue in ues - if any( - (not code_ue_validant(code) for code in codes_validations_by_ue[ue.id]) + if not any( + ( + code_ue_validant(code) + for code in codes_validations_by_ue_code[ue.ue_code] + ) ) ], key=attrgetter("numero", "acronyme"),