Merge 9525da85acb856be1d4957a5ff9560ba969768d0 into ec3052c0aea48996230af716b5ed9161a1cc9a66
This commit is contained in:
commit
469bcf7a4b
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1,3 @@
|
|||||||
database.sqlite
|
database.sqlite
|
||||||
|
*.pyc
|
||||||
|
.env
|
99
forms.py
99
forms.py
@ -1,19 +1,44 @@
|
|||||||
from flask_wtf import FlaskForm
|
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
|
from wtforms.validators import DataRequired, Email, Length, EqualTo
|
||||||
|
|
||||||
|
class EmailFieldMixin(Form):
|
||||||
class LoginForm(FlaskForm):
|
"""
|
||||||
'''
|
mixin class to provide email field to forms
|
||||||
Form Login
|
"""
|
||||||
'''
|
|
||||||
email = StringField(
|
email = StringField(
|
||||||
'Email',
|
'Email',
|
||||||
validators=[
|
validators=[
|
||||||
DataRequired(),
|
DataRequired(),
|
||||||
Email()
|
Email(),
|
||||||
|
Length(1, 254, 'Too long.'),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class PasswordConfirmFieldMixin(Form):
|
||||||
|
"""
|
||||||
|
mixin class to provide extra password field
|
||||||
|
|
||||||
|
"""
|
||||||
|
password_confirm = PasswordField('Repeat password')
|
||||||
|
|
||||||
|
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 = PasswordField(
|
||||||
'Password',
|
'Password',
|
||||||
validators=[
|
validators=[
|
||||||
@ -21,8 +46,12 @@ class LoginForm(FlaskForm):
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class LoginForm(FlaskForm, EmailFieldMixin, PasswordFieldMixin):
|
||||||
|
'''
|
||||||
|
Form Login
|
||||||
|
'''
|
||||||
|
|
||||||
class SignupForm(FlaskForm):
|
class SignupForm(FlaskForm, EmailFieldMixin, PasswordConfirmFieldMixin, PasswordFieldMixin):
|
||||||
'''
|
'''
|
||||||
Form signup
|
Form signup
|
||||||
'''
|
'''
|
||||||
@ -30,63 +59,31 @@ class SignupForm(FlaskForm):
|
|||||||
'Username',
|
'Username',
|
||||||
validators=[
|
validators=[
|
||||||
DataRequired(),
|
DataRequired(),
|
||||||
Length(5, 30, '''
|
Length(
|
||||||
You can not have less than 5 characters or more 30.
|
5, # min
|
||||||
''')
|
30, # max
|
||||||
]
|
'You can not have less than 5 characters or more 30.' # error message
|
||||||
)
|
|
||||||
email = StringField(
|
|
||||||
'Email',
|
|
||||||
validators=[
|
|
||||||
DataRequired(),
|
|
||||||
Email(),
|
|
||||||
Length(1, 254, 'Too long.')
|
|
||||||
]
|
|
||||||
)
|
|
||||||
password = PasswordField(
|
|
||||||
'Password',
|
|
||||||
validators=[
|
|
||||||
DataRequired(),
|
|
||||||
EqualTo(
|
|
||||||
'password_confirm',
|
|
||||||
'Passwords are not the same.'
|
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
password_confirm = PasswordField('Repeat password')
|
|
||||||
accept_tos = BooleanField(
|
accept_tos = BooleanField(
|
||||||
'I accept the terms and conditions.',
|
'I accept the terms and conditions.',
|
||||||
validators=[
|
validators=[
|
||||||
DataRequired('Please accept the terms and conditions.')
|
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, EmailFieldMixin):
|
||||||
class EmailResetPasswordForm(FlaskForm):
|
|
||||||
'''
|
'''
|
||||||
Form send email reset password
|
Form send email reset password
|
||||||
'''
|
'''
|
||||||
email = StringField(
|
|
||||||
'Email',
|
|
||||||
validators=[
|
|
||||||
DataRequired(),
|
|
||||||
Email()
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
|
class ResetPasswordForm(FlaskForm,PasswordConfirmFieldMixin):
|
||||||
class ResetPasswordForm(FlaskForm):
|
|
||||||
'''
|
'''
|
||||||
Form update password
|
Form update password
|
||||||
'''
|
'''
|
||||||
password = PasswordField(
|
|
||||||
'Password',
|
|
||||||
validators=[
|
|
||||||
DataRequired(),
|
|
||||||
EqualTo(
|
|
||||||
'password_confirm',
|
|
||||||
'Passwords are not the same.'
|
|
||||||
)
|
|
||||||
]
|
|
||||||
)
|
|
||||||
password_confirm = PasswordField('Repeat password')
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user