Skip to content
Snippets Groups Projects
Commit ad4e4e33 authored by Emmanuel Viennet's avatar Emmanuel Viennet
Browse files

Calcul ECTS dans le parcours BUT

parent 87316f05
No related branches found
No related tags found
No related merge requests found
......@@ -43,7 +43,7 @@ from app.models.formsemestre import FormSemestre, FormSemestreInscription
from app.models.ues import UniteEns
from app.models.validations import ScolarFormSemestreValidation
from app.scodoc import codes_cursus as sco_codes
from app.scodoc.codes_cursus import code_ue_validant, RED, UE_STANDARD
from app.scodoc.codes_cursus import code_ue_validant, CODES_UE_VALIDES
from app.scodoc import sco_utils as scu
from app.scodoc.sco_exceptions import ScoNoReferentielCompetences, ScoValueError
......@@ -365,18 +365,26 @@ class FormSemestreCursusBUT:
def but_ects_valides(etud: Identite, referentiel_competence_id: int) -> float:
"Nombre d'ECTS validés par etud dans le BUT de référentiel indiqué"
# ne prend que les UE associées à des niveaux de compétences, et ne les compte qu'une fois
ects_dict = {
(v.ue.semestre_idx, v.ue.niveau_competence.id): v.ue.ects
for v in ScolarFormSemestreValidation.query.filter_by(etudid=etud.id)
"""Nombre d'ECTS validés par etud dans le BUT de référentiel indiqué.
Ne prend que les UE associées à des niveaux de compétences,
et ne les compte qu'une fois même en cas de redoublement avec re-validation.
"""
validations = (
ScolarFormSemestreValidation.query.filter_by(etudid=etud.id)
.filter(ScolarFormSemestreValidation.ue_id != None)
.join(UniteEns)
.join(ApcNiveau)
.join(ApcCompetence)
.filter_by(referentiel_id=referentiel_competence_id)
}
return sum(ects_dict.values())
)
ects_dict = {}
for v in validations:
key = (v.ue.semestre_idx, v.ue.niveau_competence.id)
if v.code in CODES_UE_VALIDES:
ects_dict[key] = v.ue.ects
return sum(ects_dict.values()) if ects_dict else 0.0
def etud_ues_de_but1_non_validees(
......
# -*- mode: python -*-
# -*- coding: utf-8 -*-
SCOVERSION = "9.4.94"
SCOVERSION = "9.4.95"
SCONAME = "ScoDoc"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment