forked from ScoDoc/ScoDoc
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
from flask import g, url_for
|
|
from flask_wtf import FlaskForm
|
|
from wtforms import FieldList, Form, DecimalField, validators
|
|
|
|
from app.models import ApcParcours, ApcReferentielCompetences, UniteEns
|
|
|
|
|
|
class _UEParcoursECTSForm(FlaskForm):
|
|
"Formulaire association ECTS par parcours à une UE"
|
|
# construit dynamiquement ci-dessous
|
|
|
|
|
|
def UEParcoursECTSForm(ue: UniteEns) -> FlaskForm:
|
|
"Génère formulaire association ECTS par parcours à une UE"
|
|
|
|
class F(_UEParcoursECTSForm):
|
|
pass
|
|
|
|
parcours: list[ApcParcours] = ue.formation.referentiel_competence.parcours
|
|
# Initialise un champ de saisie par parcours
|
|
for parcour in parcours:
|
|
ects = ue.get_ects(parcour, only_parcours=True)
|
|
setattr(
|
|
F,
|
|
f"ects_parcour_{parcour.id}",
|
|
DecimalField(
|
|
f"Parcours {parcour.code}",
|
|
validators=[
|
|
validators.Optional(),
|
|
validators.NumberRange(min=0, max=30),
|
|
],
|
|
default=ects,
|
|
),
|
|
)
|
|
return F()
|