hanze/programmeerles-ouderen

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

forms.py (4137B) download


 1from flask_login import current_user
 2from flask_wtf import FlaskForm
 3from flask_wtf.file import FileAllowed, FileField
 4from wtforms import BooleanField, HiddenField, PasswordField, SelectField, StringField, SubmitField, TextAreaField
 5from wtforms.validators import DataRequired, Email, EqualTo, Length, ValidationError
 6
 7from .models import User
 8
 9""" registration form for register.html """
10class RegistrationForm(FlaskForm):
11    username = StringField('Naam', validators=[ DataRequired(), Length(min=2, max=20) ])
12    email = StringField('E-Mail', validators=[ DataRequired(), Email() ])
13    password = PasswordField('Wachtwoord', validators=[ DataRequired() ])
14    confirm_password = PasswordField('Wachtwoord herhalen', validators=[ DataRequired(), EqualTo('password') ])
15    submit = SubmitField('Registeren')
16
17    """ validates whether username is already in use """
18    def validate_username(self, username):
19        if User.query.filter_by(username=username.data).first():
20            raise ValidationError('Deze gebruikersnaam bestaat al, kies een andere.')
21
22    """ validates whether e-mail is already in use """
23    def validate_email(self, email):
24        if User.query.filter_by(email=email.data).first():
25            raise ValidationError('Deze e-mail bestaat al, log in als dat uw e-mail is')
26
27
28""" login form for login.html """
29class LoginForm(FlaskForm):
30    email = StringField('E-Mail', validators=[ DataRequired(), Email() ])
31    password = PasswordField('Wachtwoord', validators=[ DataRequired() ])
32    remember = BooleanField('Herinneren')
33    submit = SubmitField('Inloggen')
34
35
36""" update account form for account.html """
37class UpdateAccountForm(FlaskForm):
38    username = StringField('Naam', validators=[ DataRequired(), Length(min=2, max=20) ])
39    email = StringField('E-Mail', validators=[ DataRequired(), Email() ])
40    password = PasswordField('Wachtwoord', validators=[])
41    confirm_password = PasswordField('Wachtwoord herhalen', validators=[ EqualTo('password') ])
42    picture = FileField('Profielfoto bewerken', validators=[ FileAllowed(['jpg', 'png']) ])
43    submit = SubmitField('Bewerken')
44
45    """ validates whether username is already in use """
46    def validate_username(self, username):
47        if username.data != current_user.username and User.query.filter_by(username=username.data).first():
48            raise ValidationError('Deze gebruikersnaam bestaat al, kies een andere.')
49
50    """ validates whether e-mail is already in use """
51    def validate_email(self, email):
52        if email.data != current_user.email and User.query.filter_by(email=email.data).first():
53            raise ValidationError('Deze e-mail bestaat al, log in als dat uw e-mail is')
54
55""" update/new course form for new_course.html """
56class NewCourseForm(FlaskForm):
57    name = StringField('Naam', validators=[ DataRequired(), Length(min=1, max=100) ])
58    description = TextAreaField('Beschrijving', validators=[ DataRequired() ])
59    teacher_id = SelectField('Docent', validators=[ DataRequired() ], coerce=int)
60    weekday = SelectField('Weekdag', choices=list(enumerate([ 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag', 'Zondag' ])))
61    start = StringField('Begin', validators=[ DataRequired() ])
62    end = StringField('Einde', validators=[ DataRequired() ])
63    location = StringField('Locatie', validators=[ DataRequired(), Length(min=1, max=100) ])
64    submit = SubmitField('Versturen')
65
66""" subscribe form for course.html """
67class SubscribeForm(FlaskForm):
68    lang_id = HiddenField()
69    submit = SubmitField('Inschrijven')
70
71
72""" unsubscribe form for course.html """
73class UnsubscribeForm(FlaskForm):
74    lang_id = HiddenField()
75    submit = SubmitField('Uitschrijven')
76
77""" search form for admin.html """
78class SearchForm(FlaskForm):
79    username = StringField('Naam', validators=[ DataRequired(), Length(min=2, max=20)])
80    submit = SubmitField('Zoeken')
81
82""" account-settings form for admin_user.html """
83class AdminForm(FlaskForm):
84    type = SelectField('Type',  choices=[('client', 'Klant'), ('teacher', 'Docent'), ('admin', 'Administrator')])
85    submit = SubmitField('Bewerken')