61 lines
3.9 KiB
Python
61 lines
3.9 KiB
Python
from flask_wtf import FlaskForm
|
||
from wtforms import StringField, PasswordField, BooleanField, TextAreaField, SubmitField, DecimalField, SelectField
|
||
from wtforms.fields.html5 import DateField
|
||
from wtforms.validators import DataRequired, InputRequired, Optional, Email, EqualTo
|
||
from flask_wtf.file import FileField # Cuz' wtforms' FileField is shitty
|
||
from app.models.trophies import Trophy
|
||
import app.utils.validators as vd
|
||
|
||
|
||
class RegistrationForm(FlaskForm):
|
||
username = StringField('Pseudonyme', description='Ce nom est définitif !', validators=[DataRequired(), vd.name_valid, vd.name_available])
|
||
email = StringField('Adresse Email', validators=[DataRequired(), Email(), vd.email])
|
||
password = PasswordField('Mot de passe', validators=[DataRequired(), vd.password])
|
||
password2 = PasswordField('Répéter le mot de passe', validators=[DataRequired(), EqualTo('password')])
|
||
guidelines = BooleanField("""J'accepte les <a href="#">CGU</a>""", validators=[DataRequired()])
|
||
newsletter = BooleanField('Inscription à la newsletter', description='Un mail par trimestre environ, pour être prévenu des concours, évènements et nouveautés.')
|
||
submit = SubmitField("S'inscrire")
|
||
|
||
|
||
class UpdateAccountForm(FlaskForm):
|
||
avatar = FileField('Avatar', validators=[Optional(), vd.avatar])
|
||
email = StringField('Adresse email', validators=[Optional(), Email(), vd.email, vd.old_password])
|
||
password = PasswordField('Mot de passe', validators=[Optional(), vd.password, vd.old_password])
|
||
password2 = PasswordField('Répéter le mot de passe', validators=[Optional(), EqualTo('password')])
|
||
old_password = PasswordField('Mot de passe actuel', validators=[Optional()])
|
||
birthday = DateField('Anniversaire', validators=[Optional()])
|
||
signature = TextAreaField('Signature', validators=[Optional()])
|
||
biography = TextAreaField('Présentation', validators=[Optional()])
|
||
newsletter = BooleanField('Inscription à la newsletter', description='Un mail par trimestre environ, pour être prévenu des concours, évènements et nouveautés.')
|
||
submit = SubmitField('Mettre à jour')
|
||
|
||
|
||
class DeleteAccountForm(FlaskForm):
|
||
delete = BooleanField('Confirmer la suppression', validators=[DataRequired()], description='Attention, cette opération est irréversible !')
|
||
old_password = PasswordField('Mot de passe', validators=[DataRequired(), vd.old_password])
|
||
submit = SubmitField('Supprimer le compte')
|
||
|
||
|
||
class AdminUpdateAccountForm(FlaskForm):
|
||
username = StringField('Pseudonyme', validators=[Optional(), vd.name_valid])
|
||
avatar = FileField('Avatar', validators=[Optional(), vd.avatar])
|
||
email = StringField('Adresse email', validators=[Optional(), Email(), vd.email])
|
||
email_validate = BooleanField("Envoyer un email de validation à la nouvelle adresse", description="Si décoché, l'utilisateur devra demander explicitement un email de validation, ou faire valider son adresse email par un administrateur.")
|
||
password = PasswordField('Mot de passe', description="L'ancien mot de passe ne pourra pas être récupéré !", validators=[Optional(), vd.password])
|
||
xp = DecimalField('XP', validators=[Optional()])
|
||
birthday = DateField('Anniversaire', validators=[Optional()])
|
||
signature = TextAreaField('Signature', validators=[Optional()])
|
||
biography = TextAreaField('Présentation', validators=[Optional()])
|
||
newsletter = BooleanField('Inscription à la newsletter', description='Un mail par trimestre environ, pour être prévenu des concours, évènements et nouveautés.')
|
||
submit = SubmitField('Mettre à jour')
|
||
|
||
|
||
class AdminAccountEditTrophyForm(FlaskForm):
|
||
# Boolean inputs are generated on-the-fly from trophy list
|
||
submit = SubmitField('Modifier')
|
||
|
||
|
||
class AdminDeleteAccountForm(FlaskForm):
|
||
delete = BooleanField('Confirmer la suppression', validators=[DataRequired()], description='Attention, cette opération est irréversible !')
|
||
submit = SubmitField('Supprimer le compte')
|