hanze/muizenval

server/forms.py in layout
Repositories | Summary | Log | Files

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')