|
from flask_wtf import FlaskForm
|
|
from wtforms import StringField, PasswordField, SubmitField
|
|
from wtforms.validators import DataRequired, Email, EqualTo, Length, ValidationError
|
|
from models import User
|
|
from wtforms import FileField
|
|
from wtforms.validators import Email, Optional
|
|
from flask_wtf.file import FileAllowed
|
|
|
|
|
|
class EditProfileForm(FlaskForm):
|
|
username = StringField('Имя пользователя', validators=[Optional()])
|
|
email = StringField('Email', validators=[Optional(), Email()])
|
|
avatar = FileField('Аватарка', validators=[FileAllowed(['jpg', 'png', 'jpeg'], 'Только изображения')])
|
|
|
|
current_password = PasswordField('Текущий пароль', validators=[Optional()])
|
|
new_password = PasswordField('Новый пароль', validators=[Optional()])
|
|
confirm_password = PasswordField('Подтвердите новый пароль', validators=[
|
|
Optional(),
|
|
EqualTo('new_password', message='Пароли должны совпадать')
|
|
])
|
|
|
|
submit = SubmitField('Сохранить')
|
|
|
|
|
|
def validate_email(self, email):
|
|
user = User.query.filter_by(email=email.data).first()
|
|
if user:
|
|
raise ValidationError('Этот email уже используется')
|
|
|
|
|
|
class LoginForm(FlaskForm):
|
|
email = StringField('Email', validators=[DataRequired(), Email()])
|
|
password = PasswordField('Пароль', validators=[DataRequired()])
|
|
submit = SubmitField('Войти')
|
|
|
|
|
|
class RegistrationForm(FlaskForm):
|
|
username = StringField(
|
|
'Имя пользователя',
|
|
validators=[
|
|
DataRequired(message="Пожалуйста, введите имя пользователя."),
|
|
Length(min=4, max=25, message="Имя пользователя должно быть от 4 до 25 символов.")
|
|
]
|
|
)
|
|
|
|
email = StringField(
|
|
'Email',
|
|
validators=[
|
|
DataRequired(message="Пожалуйста, введите email."),
|
|
Email(message="Пожалуйста, введите корректный email.")
|
|
]
|
|
)
|
|
|
|
password = PasswordField(
|
|
'Пароль',
|
|
validators=[
|
|
DataRequired(message="Пожалуйста, введите пароль."),
|
|
Length(min=6, message="Пароль должен содержать не менее 6 символов.")
|
|
]
|
|
)
|
|
|
|
confirm_password = PasswordField(
|
|
'Подтвердите пароль',
|
|
validators=[
|
|
DataRequired(message="Пожалуйста, подтвердите пароль."),
|
|
EqualTo('password', message="Пароли не совпадают.")
|
|
]
|
|
)
|
|
|
|
submit = SubmitField('Зарегистрироваться')
|
|
|