diff --git a/app/but/cursus_but.py b/app/but/cursus_but.py index 5eda000dc..34a3295eb 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"),