37 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from flask_wtf import FlaskForm
 | |
| from wtforms import StringField, TextAreaField, FloatField, SelectField, DateField, IntegerField, SubmitField
 | |
| from wtforms.validators import DataRequired, Email, NumberRange, Optional, Length
 | |
| from datetime import date
 | |
| from models import ClassGroup
 | |
| 
 | |
| class AssessmentForm(FlaskForm):
 | |
|     title = StringField('Titre', validators=[DataRequired(), Length(max=200)])
 | |
|     description = TextAreaField('Description', validators=[Optional()])
 | |
|     date = DateField('Date', validators=[DataRequired()], default=date.today)
 | |
|     class_group_id = SelectField('Classe', validators=[DataRequired()], coerce=int)
 | |
|     coefficient = FloatField('Coefficient', validators=[DataRequired(), NumberRange(min=0.1, max=10)], default=1.0)
 | |
|     submit = SubmitField('Enregistrer')
 | |
|     
 | |
|     def __init__(self, *args, **kwargs):
 | |
|         super(AssessmentForm, self).__init__(*args, **kwargs)
 | |
|         self.class_group_id.choices = [(cg.id, cg.name) for cg in ClassGroup.query.order_by(ClassGroup.name).all()]
 | |
| 
 | |
| class ClassGroupForm(FlaskForm):
 | |
|     name = StringField('Nom de la classe', validators=[DataRequired(), Length(max=100)])
 | |
|     description = TextAreaField('Description', validators=[Optional()])
 | |
|     year = StringField('Année scolaire', validators=[DataRequired(), Length(max=20)], default="2024-2025")
 | |
|     submit = SubmitField('Enregistrer')
 | |
| 
 | |
| class StudentForm(FlaskForm):
 | |
|     first_name = StringField('Prénom', validators=[DataRequired(), Length(max=100)])
 | |
|     last_name = StringField('Nom', validators=[DataRequired(), Length(max=100)])
 | |
|     email = StringField('Email', validators=[Optional(), Email(), Length(max=120)])
 | |
|     class_group_id = SelectField('Classe', validators=[DataRequired()], coerce=int)
 | |
|     submit = SubmitField('Enregistrer')
 | |
|     
 | |
|     def __init__(self, *args, **kwargs):
 | |
|         super(StudentForm, self).__init__(*args, **kwargs)
 | |
|         self.class_group_id.choices = [(cg.id, cg.name) for cg in ClassGroup.query.order_by(ClassGroup.name).all()]
 | |
| 
 | |
| # Formulaires ExerciseForm et GradingElementForm supprimés
 | |
| # Ces éléments sont maintenant gérés via le formulaire unifié AssessmentForm |