forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -364,6 +364,21 @@ class FormSemestreCursusBUT:
|
|||||||
"cache { competence_id : competence }"
|
"cache { competence_id : competence }"
|
||||||
|
|
||||||
|
|
||||||
|
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)
|
||||||
|
.filter(ScolarFormSemestreValidation.ue_id != None)
|
||||||
|
.join(UniteEns)
|
||||||
|
.join(ApcNiveau)
|
||||||
|
.join(ApcCompetence)
|
||||||
|
.filter_by(referentiel_id=referentiel_competence_id)
|
||||||
|
}
|
||||||
|
return sum(ects_dict.values())
|
||||||
|
|
||||||
|
|
||||||
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]:
|
||||||
|
@ -12,6 +12,7 @@ from openpyxl.styles import Font, Border, Side, Alignment, PatternFill
|
|||||||
|
|
||||||
from app import log
|
from app import log
|
||||||
from app.but import jury_but
|
from app.but import jury_but
|
||||||
|
from app.but.cursus_but import but_ects_valides
|
||||||
from app.models.etudiants import Identite
|
from app.models.etudiants import Identite
|
||||||
from app.models.formsemestre import FormSemestre
|
from app.models.formsemestre import FormSemestre
|
||||||
from app.scodoc.gen_tables import GenTable
|
from app.scodoc.gen_tables import GenTable
|
||||||
@ -109,6 +110,11 @@ def pvjury_table_but(
|
|||||||
"""
|
"""
|
||||||
# remplace pour le BUT la fonction sco_pv_forms.pvjury_table
|
# remplace pour le BUT la fonction sco_pv_forms.pvjury_table
|
||||||
annee_but = (formsemestre.semestre_id + 1) // 2
|
annee_but = (formsemestre.semestre_id + 1) // 2
|
||||||
|
referentiel_competence_id = formsemestre.formation.referentiel_competence_id
|
||||||
|
if referentiel_competence_id is None:
|
||||||
|
raise ScoValueError(
|
||||||
|
"pas de référentiel de compétences associé à la formation de ce semestre !"
|
||||||
|
)
|
||||||
titles = {
|
titles = {
|
||||||
"nom": "Code" if anonymous else "Nom",
|
"nom": "Code" if anonymous else "Nom",
|
||||||
"cursus": "Cursus",
|
"cursus": "Cursus",
|
||||||
@ -153,7 +159,7 @@ def pvjury_table_but(
|
|||||||
etudid=etud.id,
|
etudid=etud.id,
|
||||||
),
|
),
|
||||||
"cursus": _descr_cursus_but(etud),
|
"cursus": _descr_cursus_but(etud),
|
||||||
"ects": f"{deca.ects_annee():g}",
|
"ects": f"""{deca.ects_annee():g}<br><br>Tot. {but_ects_valides(etud, referentiel_competence_id ):g}""",
|
||||||
"ues": deca.descr_ues_validation(line_sep=line_sep) if deca else "-",
|
"ues": deca.descr_ues_validation(line_sep=line_sep) if deca else "-",
|
||||||
"niveaux": deca.descr_niveaux_validation(line_sep=line_sep)
|
"niveaux": deca.descr_niveaux_validation(line_sep=line_sep)
|
||||||
if deca
|
if deca
|
||||||
|
Loading…
Reference in New Issue
Block a user