You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
3.4 KiB

from flask_wtf import FlaskForm
from flask_wtf.file import FileField, FileAllowed
from flask_login import current_user
from wtforms import StringField, PasswordField, SubmitField, BooleanField, TextAreaField
from wtforms.validators import DataRequired, Length, Email, EqualTo, ValidationError
from minibase.models import User
class registrationForm(FlaskForm):
username = StringField('User Name',
validators=[DataRequired(),Length(min = 3, max = 20)])
email = StringField('Email',
validators=[DataRequired(),Email()])
password = PasswordField('Password',
validators=[DataRequired()])
password_confirm = PasswordField('Confirm Password',
validators=[DataRequired(), EqualTo('password')])
submit = SubmitField('Sing Up')
def validate_username(self, username):
user = User.query.filter_by(username=username.data).first()
if user:
raise ValidationError('That username is taken please choose another one')
def validate_email(self, email):
email = User.query.filter_by(email=email.data).first()
if email:
raise ValidationError('That email is taken do you have an acocunt ?')
class loginForm(FlaskForm):
email = StringField('Email',
validators=[DataRequired(),Email()])
password = PasswordField('Password',
validators=[DataRequired()])
remember = BooleanField('Remember Me')
submit = SubmitField('Log In')
class updateAccountForm(FlaskForm):
username = StringField('User Name',
validators=[DataRequired(),Length(min = 3, max = 20)])
email = StringField('Email',
validators=[DataRequired(),Email()])
picture = FileField('Update Profile Picture',
validators=[FileAllowed(['jpg','png'])])
submit = SubmitField('Update')
def validate_username(self, username):
if username.data != current_user.username:
user = User.query.filter_by(username=username.data).first()
if user:
raise ValidationError('That username is taken please choose another one')
def validate_email(self, email):
if email.data != current_user.email:
email = User.query.filter_by(email=email.data).first()
if email:
raise ValidationError('That email is taken do you have an acocunt ?')
class postForm(FlaskForm):
title = StringField('Title',
validators=[DataRequired(),Length(min = 3, max = 100)])
content = TextAreaField('Content',
validators=[DataRequired()])
submit = SubmitField('Post')
class requestResetForm(FlaskForm):
email = StringField('Email',
validators=[DataRequired(),Email()])
submit = SubmitField('Request Password Reset')
def validate_email(self, email):
email = User.query.filter_by(email=email.data).first()
if email is None:
raise ValidationError('There is no Account with this email your must register first.')
class resetPasswordForm(FlaskForm):
password = PasswordField('Password',
validators=[DataRequired()])
password_confirm = PasswordField('Confirm Password',
validators=[DataRequired(), EqualTo('password')])
submit = SubmitField('Reset Password')