forms.py (3676B) download
1import re
2from tokenize import String
3from flask_wtf import FlaskForm
4from flask_wtf.file import FileAllowed, FileField
5from wtforms import BooleanField, HiddenField, PasswordField, StringField, SubmitField, IntegerField
6from wtforms.validators import DataRequired, Email, EqualTo, Length, ValidationError
7
8from .models import User
9
10""" registration form for register.html """
11class RegistrationForm(FlaskForm):
12 name = StringField('Naam', validators=[ DataRequired(), Length(min=5, max=20) ])
13 email = StringField('E-Mail', validators=[ DataRequired(), Email() ])
14 password = PasswordField('Wachtwoord', validators=[ DataRequired() ])
15 confirm_password = PasswordField('Wachtwoord herhalen', validators=[ DataRequired(), EqualTo('password') ])
16 phone = StringField('Telefoon', validators=[ DataRequired(), Length(min=5) ])
17 street = StringField('Straat', validators=[ DataRequired() ])
18 housenumber = IntegerField('Huisnummer', validators=[ DataRequired() ])
19 zipcode = StringField('Postcode', validators=[ DataRequired() ])
20 place = StringField('Plaats', validators=[ DataRequired() ])
21 submit = SubmitField('Registeren')
22
23 """ validates whether name is already in use """
24 def validate_name(self, name):
25 if User.query.filter_by(name=name.data).first():
26 raise ValidationError('Deze gebruikersnaam bestaat al, kies een andere.')
27
28 """ validates whether e-mail is already in use """
29 def validate_email(self, email):
30 if User.query.filter_by(email=email.data).first():
31 raise ValidationError('Deze e-mail bestaat al, log in als dat uw e-mail is.')
32
33 def validate_phone(self, phone):
34 for c in phone.data:
35 if c not in '0123456789- ':
36 raise ValidationError('Dit belnummer is niet geldig.')
37
38 def validate_postcode(self, code):
39 if len(code.data) != 6 or not code.data[0:4].isnumeric() or not code.data[4:6].isalpha():
40 raise ValidationError('De postcode is niet geldig.')
41
42
43""" login form for login.html """
44class LoginForm(FlaskForm):
45 email = StringField('E-Mail', validators=[ DataRequired(), Email() ])
46 password = PasswordField('Wachtwoord', validators=[ DataRequired() ])
47 remember = BooleanField('Herinneren')
48 submit = SubmitField('Inloggen')
49
50
51""" update account form for account.html """
52class UpdateAccountForm(FlaskForm):
53 name = StringField('Naam', validators=[ DataRequired(), Length(min=2, max=20) ])
54 email = StringField('E-Mail', validators=[ DataRequired(), Email() ])
55 password = PasswordField('Wachtwoord', validators=[])
56 confirm_password = PasswordField('Wachtwoord herhalen', validators=[ EqualTo('password') ])
57 picture = FileField('Profielfoto bewerken', validators=[ FileAllowed(['jpg', 'png']) ])
58 submit = SubmitField('Bewerken')
59
60 """ validates whether name is already in use """
61 def validate_name(self, name):
62 if name.data != current_user.name and User.query.filter_by(name=name.data).first():
63 raise ValidationError('Deze gebruikersnaam bestaat al, kies een andere.')
64
65 """ validates whether e-mail is already in use """
66 def validate_email(self, email):
67 if email.data != current_user.email and User.query.filter_by(email=email.data).first():
68 raise ValidationError('Deze e-mail bestaat al, log in als dat uw e-mail is')
69
70class UpdateTrapForm(FlaskForm):
71 mac = StringField('MAC')
72 name = StringField('Naam')
73 email = StringField('E-mail')
74 submit = SubmitField('Bewerken')
75
76class ConnectTrapForm(FlaskForm):
77 mac = StringField('MAC', validators=[ Length(min=16, max=16) ])
78 submit = SubmitField('Verbinden')