ScoDoc/app/but/forms/refcomp_forms.py

74 lines
2.3 KiB
Python

##############################################################################
# ScoDoc
# Copyright (c) 1999 - 2024 Emmanuel Viennet. All rights reserved.
# See LICENSE
##############################################################################
"""ScoDoc 9 : Formulaires / référentiel de compétence
"""
from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileAllowed
from wtforms import SelectField, SubmitField
from wtforms.validators import DataRequired
class FormationRefCompForm(FlaskForm):
"Choix d'un référentiel"
referentiel_competence = SelectField(
"Choisir parmi les référentiels déjà chargés :"
)
submit = SubmitField("Valider")
cancel = SubmitField("Annuler")
class RefCompLoadForm(FlaskForm):
"Upload d'un référentiel"
referentiel_standard = SelectField(
"Choisir un référentiel de compétences officiel BUT"
)
submit = SubmitField("Valider")
cancel = SubmitField("Annuler")
def validate(self, extra_validators=None) -> bool:
if not super().validate(extra_validators):
return False
if self.referentiel_standard.data == "0":
self.referentiel_standard.errors.append("Choisir soit un référentiel")
return False
return True
class RefCompUploadForm(FlaskForm):
"Upload d'un référentiel"
upload = FileField(
label="Sélectionner un fichier XML au format Orébut",
validators=[
FileAllowed(
[
"xml",
],
"Fichier XML Orébut seulement",
),
],
)
submit = SubmitField("Valider")
cancel = SubmitField("Annuler")
def validate(self, extra_validators=None) -> bool:
if not super().validate(extra_validators):
return False
if not self.upload.data:
self.upload.errors.append("Choisir un fichier XML")
return False
return True
class FormationChangeRefCompForm(FlaskForm):
"choix d'un nouveau ref. comp. pour une formation"
object_select = SelectField(
"Choisir le nouveau référentiel", validators=[DataRequired()]
)
submit = SubmitField("Changer le référentiel de la formation")
cancel = SubmitField("Annuler")