from wtforms import Form, StringField, TextAreaField, SelectField, RadioField from wtforms import IntegerField, PasswordField from wtforms.validators import InputRequired, Length, Email from wtforms.widgets import HiddenInput strip_filter = lambda x: x.strip() if x else None class BlogCreateForm(Form): title = StringField('Titre', validators=[InputRequired(), Length(min=1, max=255)], filters=[strip_filter]) body = TextAreaField('Corps du texte', validators=[InputRequired(), Length(min=1)], filters=[strip_filter]) tag = SelectField('Sous-rubrique') author = StringField('Auteur', validators=[InputRequired(), Length(min=1, max=50)], filters=[strip_filter]) status = SelectField('Statut', choices=[('brouillon','Brouillon'),('publié','Publié')]) class BlogUpdateForm(BlogCreateForm): id = IntegerField(widget=HiddenInput()) class BlogSearchForm(Form): criteria = StringField('Critère', validators=[InputRequired(), Length(min=3, max=45)], filters=[strip_filter]) class UserCreateForm(Form): username = StringField('Nom', validators=[InputRequired(), Length(min=1, max=255)], filters=[strip_filter]) password = PasswordField('Mot de passe', validators=[InputRequired(), Length(min=6)]) class ContactForm(Form): name = StringField('Nom', validators=[InputRequired(), Length(min=1, max=255)], filters=[strip_filter]) email = StringField('Email', validators=[InputRequired(), Length(min=1, max=255), Email()], filters=[strip_filter]) comments = TextAreaField('Message', validators=[InputRequired(), Length(min=1)], filters=[strip_filter]) class TopicForm(Form): topic = StringField('Rubrique', validators=[InputRequired(), Length(min=1, max=25)], filters=[strip_filter]) topic_name = StringField('Intitulé', validators=[InputRequired(), Length(min=1, max=25)], filters=[strip_filter]) topic_quote = TextAreaField('Citation', validators=[InputRequired(), Length(min=1)], filters=[strip_filter]) class TagForm(Form): id = IntegerField(widget=HiddenInput()) tag = StringField('Sous-rubrique', validators=[InputRequired(), Length(min=1, max=25)], filters=[strip_filter]) tag_name = StringField('Intitulé', validators=[InputRequired(), Length(min=1, max=25)], filters=[strip_filter])