schools dropdown

This commit is contained in:
warren yun 2024-10-20 21:55:25 -04:00
parent 2b0b2912f3
commit 5a3c43e98b
5 changed files with 2268 additions and 37 deletions

View file

@ -30,46 +30,47 @@ def register():
school = request.form.get('school') school = request.form.get('school')
phone = request.form.get('phone_number') phone = request.form.get('phone_number')
gender = request.form.get('gender') gender = request.form.get('gender')
print(school)
if password == password_c: # if password == password_c:
# Passwords match! # # Passwords match!
# Count of all non-waitlisted hackers # # Count of all non-waitlisted hackers
num_not_waitlisted = len(User.query.filter_by(waitlisted=False).all()) # num_not_waitlisted = len(User.query.filter_by(waitlisted=False).all())
waitlisted = False # waitlisted = False
print(num_not_waitlisted) # print(num_not_waitlisted)
print(current_app.config['MAX_BEFORE_WAITLIST']) # print(current_app.config['MAX_BEFORE_WAITLIST'])
if num_not_waitlisted >= current_app.config['MAX_BEFORE_WAITLIST']: # if num_not_waitlisted >= current_app.config['MAX_BEFORE_WAITLIST']:
waitlisted = True # waitlisted = True
user = User( # user = User(
email=email, # email=email,
password=generate_password_hash(password), # password=generate_password_hash(password),
first_name=first_name, # first_name=first_name,
last_name=last_name, # last_name=last_name,
last_login=datetime.now(), # last_login=datetime.now(),
waitlisted=waitlisted, # waitlisted=waitlisted,
school=school, # school=school,
phone=phone, # phone=phone,
gender=gender # gender=gender
) # )
db.session.add(user) # db.session.add(user)
db.session.commit() # db.session.commit()
flask_login.login_user(user) # flask_login.login_user(user)
if waitlisted: # if waitlisted:
msg = Message("Goathacks - Waitlist Confirmation") # msg = Message("Goathacks - Waitlist Confirmation")
else: # else:
msg = Message("GoatHacks - Registration Confirmation") # msg = Message("GoatHacks - Registration Confirmation")
msg.add_recipient(user.email) # msg.add_recipient(user.email)
msg.sender = ("GoatHacks Team", "hack@wpi.edu") # msg.sender = ("GoatHacks Team", "hack@wpi.edu")
msg.body = render_template("emails/registration.txt", user=user) # msg.body = render_template("emails/registration.txt", user=user)
app_mail.send(msg) # app_mail.send(msg)
return redirect(url_for("dashboard.home")) # return redirect(url_for("dashboard.home"))
else: # else:
flash("Passwords do not match") # flash("Passwords do not match")
return render_template("register.html", form=form) return render_template("register.html", form=form)

View file

@ -1,8 +1,12 @@
from flask_wtf import FlaskForm from flask_wtf import FlaskForm
from wtforms import BooleanField, PasswordField, SelectField, StringField, SubmitField, widgets from wtforms import BooleanField, PasswordField, SelectField, StringField, SubmitField, widgets
from wtforms.validators import DataRequired from wtforms.validators import DataRequired
import os
class RegisterForm(FlaskForm): 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")
email = StringField("Email", validators=[DataRequired()]) email = StringField("Email", validators=[DataRequired()])
first_name = StringField("Preferred First Name", first_name = StringField("Preferred First Name",
validators=[DataRequired()]) validators=[DataRequired()])
@ -10,12 +14,13 @@ class RegisterForm(FlaskForm):
password = PasswordField("Password", validators=[DataRequired()]) password = PasswordField("Password", validators=[DataRequired()])
password_confirm = PasswordField("Confirm Password", password_confirm = PasswordField("Confirm Password",
validators=[DataRequired()]) validators=[DataRequired()])
school = StringField("School/University", validators=[DataRequired()]) school = SelectField("School", choices=[(school, school) for school in schools_list], widget=widgets.Select())
phone_number = StringField("Phone number", validators=[DataRequired()]) phone_number = StringField("Phone number", validators=[DataRequired()])
gender = SelectField("Gender", choices=[("F", "Female"), ("M", "Male"), gender = SelectField("Gender", choices=[("F", "Female"), ("M", "Male"),
("NB", "Non-binary/Other")], ("NB", "Non-binary/Other")],
widget=widgets.Select()) widget=widgets.Select())
agree_coc = BooleanField("I confirm that I have read and agree to the Code of Conduct", validators=[DataRequired()]) agree_coc = BooleanField("I confirm that I have read and agree to the Code of Conduct", validators=[DataRequired()])
submit = SubmitField("Register") submit = SubmitField("Register")
class LoginForm(FlaskForm): class LoginForm(FlaskForm):

File diff suppressed because it is too large Load diff

@ -1 +1 @@
Subproject commit 9c17c56d0aab937f041334bfe7f4146bf2069659 Subproject commit a107d4daf149bac2b8bd1182b399e57e8171c1f8

View file

@ -45,7 +45,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="form-floating mb-3 required"> <div class ="form-floating mb-3 required">
{{ form.school(class="form-control") }} {{ form.school(class="form-control") }}
{{ form.school.label() }} {{ form.school.label() }}
</div> </div>