forked from hack4impact/flask-base
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathforms.py
More file actions
58 lines (46 loc) · 1.93 KB
/
forms.py
File metadata and controls
58 lines (46 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from flask_wtf import Form
from wtforms import ValidationError
from wtforms.ext.sqlalchemy.fields import QuerySelectField
from wtforms.fields import PasswordField, StringField, SubmitField
from wtforms.fields.html5 import EmailField
from wtforms.validators import Email, EqualTo, InputRequired, Length
from .. import db
from ..models import Role, User
class ChangeUserEmailForm(Form):
email = EmailField(
'New email', validators=[InputRequired(), Length(1, 64), Email()])
submit = SubmitField('Update email')
def validate_email(self, field):
if User.query.filter_by(email=field.data).first():
raise ValidationError('Email already registered.')
class ChangeAccountTypeForm(Form):
role = QuerySelectField(
'New account type',
validators=[InputRequired()],
get_label='name',
query_factory=lambda: db.session.query(Role).order_by('permissions'))
submit = SubmitField('Update role')
class InviteUserForm(Form):
role = QuerySelectField(
'Account type',
validators=[InputRequired()],
get_label='name',
query_factory=lambda: db.session.query(Role).order_by('permissions'))
first_name = StringField(
'First name', validators=[InputRequired(), Length(1, 64)])
last_name = StringField(
'Last name', validators=[InputRequired(), Length(1, 64)])
email = EmailField(
'Email', validators=[InputRequired(), Length(1, 64), Email()])
submit = SubmitField('Invite')
def validate_email(self, field):
if User.query.filter_by(email=field.data).first():
raise ValidationError('Email already registered.')
class NewUserForm(InviteUserForm):
password = PasswordField(
'Password',
validators=[
InputRequired(), EqualTo('password2', 'Passwords must match.')
])
password2 = PasswordField('Confirm password', validators=[InputRequired()])
submit = SubmitField('Create')