43 lines
2.3 KiB
Python
43 lines
2.3 KiB
Python
from flask_wtf import FlaskForm
|
|
from wtforms import BooleanField, IntegerField, PasswordField, SelectField, StringField, SubmitField, widgets
|
|
from wtforms.validators import DataRequired
|
|
import os
|
|
|
|
class RegisterForm(FlaskForm):
|
|
__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
|
|
schools_list = open(os.path.join(__location__, 'schools.txt')).read().split("\n")
|
|
countries_list = open(os.path.join(__location__, 'countries.csv')).read().split("\n")
|
|
|
|
email = StringField("Email", validators=[DataRequired()])
|
|
first_name = StringField("Preferred First Name",
|
|
validators=[DataRequired()])
|
|
last_name = StringField("Last Name", validators=[DataRequired()])
|
|
password = PasswordField("Password", validators=[DataRequired()])
|
|
password_confirm = PasswordField("Confirm Password",
|
|
validators=[DataRequired()])
|
|
school = SelectField("School", choices=[(school, school) for school in schools_list], widget=widgets.Select())
|
|
phone_number = StringField("Phone number", validators=[DataRequired()])
|
|
age = IntegerField("Age", validators=[DataRequired()])
|
|
dietary_restrictions = StringField("Dietary Restrictions (Optional)")
|
|
gender = SelectField("Gender", choices=[("F", "Female"), ("M", "Male"),
|
|
("NB", "Non-binary/Other")],
|
|
widget=widgets.Select())
|
|
country = SelectField("Country", choices=[(country.split(",")[0], country.split(",")[0]) for country in countries_list], widget=widgets.Select())
|
|
newsletter = BooleanField("Subscribe to the MLH newsletter?")
|
|
agree_coc = BooleanField("I confirm that I have read and agree to the Code of Conduct", validators=[DataRequired()])
|
|
|
|
submit = SubmitField("Register")
|
|
|
|
class LoginForm(FlaskForm):
|
|
email = StringField("Email", validators=[DataRequired()])
|
|
password = PasswordField("Password", validators=[DataRequired()])
|
|
submit = SubmitField("Sign in")
|
|
|
|
class ResetForm(FlaskForm):
|
|
email = StringField("Email", validators=[DataRequired()])
|
|
submit = SubmitField("Request reset")
|
|
|
|
class PwResetForm(FlaskForm):
|
|
password = PasswordField("Password")
|
|
password_confirm = PasswordField("Confirm Password")
|
|
submit = SubmitField("Submit")
|