1
0
forked from ScoDoc/ScoDoc

Fix: calcul des UEs de BUT1 non validées pour passage en BUT3

This commit is contained in:
Emmanuel Viennet 2023-06-30 14:23:05 +02:00
parent 77e4c4f726
commit b4c68cea10

View File

@ -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"),