2018-02-23 23:34:06 +01:00
from flask_wtf import FlaskForm
from wtforms import StringField , PasswordField , BooleanField , SubmitField
from wtforms . validators import ValidationError , DataRequired , Email , EqualTo
2018-11-12 23:27:49 +01:00
from app . models . users import Member
2018-02-23 23:34:06 +01:00
class LoginForm ( FlaskForm ) :
username = StringField ( ' Pseudonyme : ' , validators = [ DataRequired ( ) ] )
password = PasswordField ( ' Mot de passe : ' , validators = [ DataRequired ( ) ] )
remember_me = BooleanField ( ' Se souvenir de moi : ' )
submit = SubmitField ( ' Connexion ' )
class RegistrationForm ( FlaskForm ) :
username = StringField ( ' Pseudonyme : ' , validators = [ DataRequired ( ) ] )
email = StringField ( ' Adresse Email : ' , validators = [ DataRequired ( ) , Email ( ) ] )
password = PasswordField ( ' Mot de passe : ' , validators = [ DataRequired ( ) ] )
password2 = PasswordField ( ' Répéter le mot de passe ' , validators = [ DataRequired ( ) , EqualTo ( ' password ' ) ] )
2018-11-12 23:27:49 +01:00
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. ' )
2018-02-23 23:34:06 +01:00
submit = SubmitField ( ' S \' enregistrer ' )
def validate_username ( self , username ) :
2018-11-12 23:27:49 +01:00
member = Member . query . filter_by ( username = username . data ) . first ( )
if member is not None :
2018-02-23 23:34:06 +01:00
raise ValidationError ( ' Pseudo indisponible. ' )
def validate_email ( self , email ) :
2018-11-12 23:27:49 +01:00
member = Member . query . filter_by ( email = email . data ) . first ( )
if member is not None :
raise ValidationError ( ' Adresse email déjà utilisée. ' )
def validate_password ( self , password ) :
if len ( password . data ) < 10 :
raise ValidationError ( ' Mot de passe est trop court (10 caractères minimum) ' )
# TODO: add more rules >:]