forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -367,7 +367,7 @@ class FormSemestreCursusBUT:
|
|||||||
def etud_ues_de_but1_non_validees(
|
def etud_ues_de_but1_non_validees(
|
||||||
etud: Identite, formation: Formation, parcour: ApcParcours
|
etud: Identite, formation: Formation, parcour: ApcParcours
|
||||||
) -> list[UniteEns]:
|
) -> 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:
|
# Les UEs avec décisions, dans les S1 ou S2 d'une formation de même code:
|
||||||
validations = (
|
validations = (
|
||||||
ScolarFormSemestreValidation.query.filter_by(etudid=etud.id)
|
ScolarFormSemestreValidation.query.filter_by(etudid=etud.id)
|
||||||
@ -377,9 +377,9 @@ def etud_ues_de_but1_non_validees(
|
|||||||
.join(Formation)
|
.join(Formation)
|
||||||
.filter_by(formation_code=formation.formation_code)
|
.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:
|
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:
|
# Les UEs du parcours en S1 et S2:
|
||||||
ues = formation.query_ues_parcour(parcour).filter(
|
ues = formation.query_ues_parcour(parcour).filter(
|
||||||
@ -390,8 +390,11 @@ def etud_ues_de_but1_non_validees(
|
|||||||
[
|
[
|
||||||
ue
|
ue
|
||||||
for ue in ues
|
for ue in ues
|
||||||
if any(
|
if not any(
|
||||||
(not code_ue_validant(code) for code in codes_validations_by_ue[ue.id])
|
(
|
||||||
|
code_ue_validant(code)
|
||||||
|
for code in codes_validations_by_ue_code[ue.ue_code]
|
||||||
|
)
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
key=attrgetter("numero", "acronyme"),
|
key=attrgetter("numero", "acronyme"),
|
||||||
|
Loading…
Reference in New Issue
Block a user