additions for base fields
This commit is contained in:
parent
c7d3b5c3e8
commit
76c77a6b12
84
forms.py
84
forms.py
@ -1,12 +1,11 @@
|
||||
from flask_wtf import FlaskForm
|
||||
from wtforms import StringField, PasswordField, BooleanField
|
||||
from wtforms import StringField, PasswordField, BooleanField, Form
|
||||
from wtforms.validators import DataRequired, Email, Length, EqualTo
|
||||
|
||||
|
||||
class LoginForm(FlaskForm):
|
||||
'''
|
||||
Form Login
|
||||
'''
|
||||
class EmailFieldMixin(Form):
|
||||
"""
|
||||
mixin class to provide email field to forms
|
||||
"""
|
||||
email = StringField(
|
||||
'Email',
|
||||
validators=[
|
||||
@ -14,6 +13,24 @@ class LoginForm(FlaskForm):
|
||||
Email()
|
||||
]
|
||||
)
|
||||
|
||||
class PasswordFieldMixin(Form):
|
||||
"""
|
||||
mixin class to provide password field
|
||||
"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(PasswordFieldMixin, self).__init__(*args, **kwargs)
|
||||
password_field = self._fields.pop('password')
|
||||
self._fields['password'] = password_field
|
||||
if 'password_confirm' in self._fields:
|
||||
self._fields['password'].validators.append(
|
||||
EqualTo(
|
||||
'password_confirm',
|
||||
'Passwords are not the same.'
|
||||
)
|
||||
)
|
||||
confirm_password_field = self._fields.pop('password_confirm')
|
||||
self._fields['password_confirm'] = confirm_password_field
|
||||
password = PasswordField(
|
||||
'Password',
|
||||
validators=[
|
||||
@ -21,8 +38,12 @@ class LoginForm(FlaskForm):
|
||||
]
|
||||
)
|
||||
|
||||
class LoginForm(FlaskForm, EmailFieldMixin, PasswordFieldMixin):
|
||||
'''
|
||||
Form Login
|
||||
'''
|
||||
|
||||
class SignupForm(FlaskForm):
|
||||
class SignupForm(FlaskForm, EmailFieldMixin, PasswordFieldMixin):
|
||||
'''
|
||||
Form signup
|
||||
'''
|
||||
@ -30,26 +51,10 @@ class SignupForm(FlaskForm):
|
||||
'Username',
|
||||
validators=[
|
||||
DataRequired(),
|
||||
Length(5, 30, '''
|
||||
You can not have less than 5 characters or more 30.
|
||||
''')
|
||||
]
|
||||
)
|
||||
email = StringField(
|
||||
'Email',
|
||||
validators=[
|
||||
DataRequired(),
|
||||
Email(),
|
||||
Length(1, 254, 'Too long.')
|
||||
]
|
||||
)
|
||||
password = PasswordField(
|
||||
'Password',
|
||||
validators=[
|
||||
DataRequired(),
|
||||
EqualTo(
|
||||
'password_confirm',
|
||||
'Passwords are not the same.'
|
||||
Length(
|
||||
5, # min
|
||||
30, # max
|
||||
'You can not have less than 5 characters or more 30.' # error message
|
||||
)
|
||||
]
|
||||
)
|
||||
@ -60,33 +65,18 @@ class SignupForm(FlaskForm):
|
||||
DataRequired('Please accept the terms and conditions.')
|
||||
]
|
||||
)
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(SignupForm, self).__init__(*args, **kwargs)
|
||||
tos = self._fields.pop('accept_tos')
|
||||
self._fields['accept_tos'] = tos
|
||||
|
||||
|
||||
class EmailResetPasswordForm(FlaskForm):
|
||||
class EmailResetPasswordForm(FlaskForm, EmailFieldMixin):
|
||||
'''
|
||||
Form send email reset password
|
||||
'''
|
||||
email = StringField(
|
||||
'Email',
|
||||
validators=[
|
||||
DataRequired(),
|
||||
Email()
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
class ResetPasswordForm(FlaskForm):
|
||||
'''
|
||||
Form update password
|
||||
'''
|
||||
password = PasswordField(
|
||||
'Password',
|
||||
validators=[
|
||||
DataRequired(),
|
||||
EqualTo(
|
||||
'password_confirm',
|
||||
'Passwords are not the same.'
|
||||
)
|
||||
]
|
||||
)
|
||||
password_confirm = PasswordField('Repeat password')
|
||||
|
Loading…
Reference in New Issue
Block a user