hanze/muizenval

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

forms.py (4076B) download


  1from flask_wtf import FlaskForm
  2from flask_wtf.file import FileAllowed, FileField
  3from wtforms import BooleanField, PasswordField, StringField, SubmitField, IntegerField, SelectField
  4from wtforms.validators import DataRequired, Email, EqualTo, Length, ValidationError
  5
  6from .models import User
  7
  8current_user: User
  9
 10""" registration form for register.html """
 11
 12
 13class RegistrationForm(FlaskForm):
 14    name = StringField('Naam', validators=[
 15                       DataRequired(), Length(min=5, max=20)])
 16    email = StringField('E-Mail', validators=[DataRequired(), Email()])
 17    password = PasswordField('Wachtwoord', validators=[DataRequired()])
 18    confirm_password = PasswordField('Wachtwoord herhalen', validators=[
 19                                     DataRequired(), EqualTo('password')])
 20    phone = StringField('Telefoon', validators=[DataRequired(), Length(min=5)])
 21    street = StringField('Straat', validators=[DataRequired()])
 22    housenumber = IntegerField('Huisnummer', validators=[DataRequired()])
 23    postcode = StringField('Postcode', validators=[DataRequired()])
 24    place = StringField('Plaats', validators=[DataRequired()])
 25    submit = SubmitField('Registeren')
 26
 27    """ validates whether name is already in use """
 28
 29    def validate_name(self, name):
 30        if User.query.filter_by(name=name.data).first():
 31            raise ValidationError(
 32                'Deze gebruikersnaam bestaat al, kies een andere.')
 33
 34    """ validates whether e-mail is already in use """
 35
 36    def validate_email(self, email):
 37        if User.query.filter_by(email=email.data).first():
 38            raise ValidationError(
 39                'Deze e-mail bestaat al, log in als dat uw e-mail is.')
 40
 41    def validate_phone(self, phone):
 42        for c in phone.data:
 43            if c not in '0123456789- ':
 44                raise ValidationError('Dit belnummer is niet geldig.')
 45
 46    def validate_postcode(self, code):
 47        if len(code.data) != 6 or not code.data[0:4].isnumeric() or not code.data[4:6].isalpha():
 48            raise ValidationError('De postcode is niet geldig.')
 49
 50
 51""" login form for login.html """
 52
 53
 54class LoginForm(FlaskForm):
 55    email = StringField('E-Mail', validators=[DataRequired(), Email()])
 56    password = PasswordField('Wachtwoord', validators=[DataRequired()])
 57    remember = BooleanField('Herinneren')
 58    submit = SubmitField('Inloggen')
 59
 60
 61""" update account form for account.html """
 62
 63
 64class UpdateAccountForm(FlaskForm):
 65    name = StringField('Naam', validators=[
 66                       DataRequired(), Length(min=2, max=20)])
 67    email = StringField('E-Mail', validators=[DataRequired(), Email()])
 68    password = PasswordField('Wachtwoord', validators=[])
 69    confirm_password = PasswordField(
 70        'Wachtwoord herhalen', validators=[EqualTo('password')])
 71    picture = FileField('Profielfoto bewerken', validators=[
 72                        FileAllowed(['jpg', 'png'])])
 73    submit = SubmitField('Bewerken')
 74
 75    """ validates whether name is already in use """
 76
 77    def validate_name(self, name):
 78        if name.data != current_user.name and User.query.filter_by(name=name.data).first():
 79            raise ValidationError(
 80                'Deze gebruikersnaam bestaat al, kies een andere.')
 81
 82    """ validates whether e-mail is already in use """
 83
 84    def validate_email(self, email):
 85        if email.data != current_user.email and User.query.filter_by(email=email.data).first():
 86            raise ValidationError(
 87                'Deze e-mail bestaat al, log in als dat uw e-mail is')
 88
 89
 90class UpdateTrapForm(FlaskForm):
 91    name = StringField('Naam')
 92    submit = SubmitField('Bewerken')
 93
 94
 95""" search form for admin.html """
 96
 97
 98class SearchForm(FlaskForm):
 99    username = StringField('Naam', validators=[
100                           DataRequired(), Length(min=2, max=20)])
101    submit = SubmitField('Zoeken')
102
103
104""" account-settings form for admin_user.html """
105
106
107class AdminForm(FlaskForm):
108    type = SelectField('Type',  choices=[
109                       ('client', 'Klant'), ('admin', 'Administrator')])
110    submit = SubmitField('Bewerken')