from wtforms import Form, StringField, TextAreaField, SelectField, DecimalField from wtforms import IntegerField, PasswordField from wtforms.validators import InputRequired, Length 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('Tag') status = SelectField('Statut', choices=[('brouillon','Brouillon'),('privé','Privé'),('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 TagForm(Form): id = IntegerField(widget=HiddenInput()) tag = StringField('Tag', validators=[InputRequired(), Length(min=1, max=25)], 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 HistoForm(Form): no_id = IntegerField(widget=HiddenInput()) mvt_cash = DecimalField('Montant à ajouter au portefeuille', places=2, validators=[InputRequired()]) class AllocationForm(Form): no_cat = IntegerField(widget=HiddenInput()) classe = StringField("Classe d'actif", validators=[InputRequired(), Length(min=1, max=25)], filters=[strip_filter]) pc_cible = IntegerField(validators=[InputRequired()]) type = SelectField('Type', choices=[('ACTION','ACTION'),('AUTRE','AUTRE')]) ordre = IntegerField(validators=[InputRequired()]) bg_color = SelectField('Couleur de fond', choices=[('info','BLEU'),('danger','ROUGE'),('warning','ORANGE'),('success','VERT')]) class ActifForm(Form): no_id = IntegerField(widget=HiddenInput()) classe = SelectField('Classe') symbole = StringField('Symbole', validators=[InputRequired(), Length(min=1, max=15)], filters=[strip_filter]) libelle = StringField('Nom', validators=[InputRequired(), Length(min=1, max=45)], filters=[strip_filter]) nombre = IntegerField(validators=[InputRequired()]) pru = DecimalField('PRU', places=3, validators=[InputRequired()]) ter = DecimalField('TER', places=2, validators=[InputRequired()]) pc_rdt = DecimalField('% rendement', places=2, validators=[InputRequired()]) website = StringField('Web site', validators=[Length(min=1, max=100)], filters=[strip_filter]) class Actif2Form(Form): no_id = IntegerField(widget=HiddenInput()) classe = SelectField('Classe') symbole = StringField('Symbole', validators=[InputRequired(), Length(min=1, max=15)], filters=[strip_filter]) libelle = StringField('Libellé', validators=[InputRequired(), Length(min=1, max=45)], filters=[strip_filter]) pru = DecimalField('Total investi', places=3, validators=[InputRequired()]) cours = DecimalField('Total valeur', places=3, validators=[InputRequired()]) pc_rdt = DecimalField('% rendement', places=2, validators=[InputRequired()])