Created
February 3, 2020 18:04
-
-
Save Porter97/a452caf522d47d0e8a99b22f8aeead42 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from flask_wtf import FlaskForm | |
from wtforms import StringField, TextAreaField, BooleanField, SelectField,\ | |
SubmitField | |
from wtforms.validators import DataRequired, Length, Email, Regexp | |
from wtforms import ValidationError | |
from ..models import Role, User | |
class EditProfileForm(FlaskForm): | |
name = StringField('Real Name', validators=[Length(0, 64)]) | |
about_me = TextAreaField('About me') | |
submit = SubmitField('Submit') | |
class EditProfileAdminForm(FlaskForm): | |
email = StringField('Email', validators=[DataRequired(), Length(1, 64), | |
Email()]) | |
username = StringField('Username', validators=[ | |
DataRequired(), Length(1, 64), | |
Regexp('^[A-Za-z][A-Za-z0-9_.]*$', 0, | |
'Usernames must have only letters, numbers, dots or ' | |
'underscores')]) | |
confirmed = BooleanField('Confirmed') | |
role = SelectField('Role', coerce=int) | |
name = StringField('Real name', validators=[Length(0, 64)]) | |
about_me = TextAreaField('About me') | |
submit = SubmitField('Submit') | |
def __init__(self, user, *args, **kwargs): | |
super(EditProfileAdminForm, self).__init__(*args, **kwargs) | |
self.role.choices = [(role.id, role.name) | |
for role in Role.query.order_by(Role.name).all()] | |
self.user = user | |
def validate_email(self, field): | |
if field.data != self.user.email and \ | |
User.query.filter_by(email=field.data).first(): | |
raise ValidationError('Email already registered.') | |
def validate_username(self, field): | |
if field.data != self.user.username and \ | |
User.query.filter_by(username=field.data).first(): | |
raise ValidationError('Username already in use.') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment