Tracking PR for registration rewrite #5

Merged
Muirrum merged 32 commits from rewrite into master 2022-12-15 18:32:08 -05:00
8 changed files with 83 additions and 22 deletions
Showing only changes of commit 036ca7b21e - Show all commits

View file

@ -1,10 +1,18 @@
from flask import Blueprint, render_template from flask import Blueprint, flash, render_template, request
from flask_login import login_required from flask_login import current_user, login_required
bp = Blueprint("dashboard", __name__, url_prefix="/dashboard") bp = Blueprint("dashboard", __name__, url_prefix="/dashboard")
from goathacks.dashboard import forms
from goathacks import db
@bp.route("/") @bp.route("/", methods=["GET", "POST"])
@login_required @login_required
def home(): def home():
return render_template("dashboard.html") form = forms.ShirtAndAccomForm(request.form)
if request.method == "POST" and form.validate():
current_user.shirt_size = request.form.get('shirt_size')
current_user.accomodations = request.form.get('accomodations')
db.session.commit()
flash("Updated successfully")
return render_template("dashboard.html", form=form)

View file

@ -0,0 +1,9 @@
from flask_wtf import FlaskForm
from wtforms import RadioField, TextAreaField
from wtforms.validators import DataRequired
class ShirtAndAccomForm(FlaskForm):
shirt_size = RadioField("Shirt size", choices=["XS", "S", "M", "L", "XL",
"None"],
validators=[DataRequired()])
accomodations = TextAreaField("Special needs and/or Accomodations")

View file

@ -16,6 +16,7 @@ class User(db.Model, UserMixin):
waitlisted = Column(Boolean, nullable=False, default=False) waitlisted = Column(Boolean, nullable=False, default=False)
shirt_size = Column(String, nullable=True) shirt_size = Column(String, nullable=True)
accomodations = Column(String, nullable=True) accomodations = Column(String, nullable=True)
checked_in = Column(Boolean, nullable=False, default=False)
@login.user_loader @login.user_loader
Muirrum commented 2022-12-08 20:25:22 -05:00 (Migrated from github.com)
Review

@willhockey20 is this something that actually needs to be stored? I only included it bc it was in the original registration system.

@willhockey20 is this something that actually needs to be stored? I only included it bc it was in the original registration system.
wfryan commented 2022-12-08 20:29:57 -05:00 (Migrated from github.com)
Review

The data was required by mlh, still could be nice to have so I'd keep it

The data was required by mlh, still could be nice to have so I'd keep it

View file

@ -145,3 +145,13 @@ form input[type="submit"] {
border-radius: 10px; border-radius: 10px;
border-color: #26a69a; border-color: #26a69a;
} }
form input[type="radio"] {
padding-right: 5px;
}
form label {
font-size: 1.1rem;
padding-right: 10px;
padding-left: 25px !important;
}

View file

@ -145,4 +145,12 @@ form {
border-radius: 10px; border-radius: 10px;
border-color: $color-accent; border-color: $color-accent;
} }
input[type="radio"] {
padding-right: 5px;
}
label {
font-size: 1.1rem;
padding-right: 10px;
padding-left: 25px !important;
}
} }

View file

@ -70,27 +70,18 @@
class="btn btn-lg btn-primary btn-invert">Discord</a> class="btn btn-lg btn-primary btn-invert">Discord</a>
</div> </div>
<div class="row center justify-content-center" style="background-color: #974355; padding: 20; margin-left: 20; margin-right: 20; border-radius: 5px;"> <div class="row center justify-content-center" style="background-color: #974355; padding: 20; margin-left: 20; margin-right: 20; border-radius: 5px;">
<form method="get" action="/shirtpost"> <form method="post">
{{ form.csrf_token }}
<br> <br>
<p><b>Optional Info:</b></p> <p><b>Optional Info:</b></p>
<div> <div>
<p>Shirt Size (Currently selected: {{shirt_size}})</p> <p>Shirt Size (Currently selected: {{current_user.shirt_size}})</p>
<input type="radio" id="shirtxs" name="size" value="xs"> {% for subfield in form.shirt_size %}
<label for="shirtxs">XS</label> {{subfield}}{{subfield.label}}
<input type="radio" id="shirts" name="size" value="s"> {% endfor %}
<label for="shirts">S</label>
<input type="radio" id="shirtm" name="size" value="m">
<label for="shirtm">M</label>
<input type="radio" id="shirtl" name="size" value="l">
<label for="shirtl">L</label>
<input type="radio" id="shirtxl" name="size" value="xl">
<label for="shirtxl">XL</label>
<input type="radio" id="shirtxxl" name="size" value="xxl">
<label for="shirtxxl">XXL</label>
<input type="radio" id="no" name="size" value="no">
<label for="no">Don't want one</label>
<p>Special Needs/Accommodations:</p> <p>Special Needs/Accommodations:</p>
<input type="text" name="special_needs" id="special_needs" value="{{ special_needs }}"> <input type="text" name="accomodations"
id="special_needs" value="{{ current_user.accomodations }}">
</div> </div>
<br><br> <br><br>
<input name="save" class="btn btn-lg btn-primary btn-invert" type="submit" value="Save"/> <input name="save" class="btn btn-lg btn-primary btn-invert" type="submit" value="Save"/>
@ -114,7 +105,7 @@
{% endif %} {% endif %}
<br> <br>
</div> </div>
{% if admin %} {% if current_user.is_admin %}
<br> <br>
<div class="row justify-content-center"> <div class="row justify-content-center">
<a href="/admin"><p class="btn">Admin Dashboard</p></a> <a href="/admin"><p class="btn">Admin Dashboard</p></a>

View file

@ -4,6 +4,7 @@
<head> <head>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link href="../static/css/materialize.min.css" rel="stylesheet">
{% assets 'scss' %} {% assets 'scss' %}
<link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}"> <link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}">
{% endassets %} {% endassets %}

View file

@ -0,0 +1,33 @@
"""empty message
Revision ID: 3f427be4ce8a
Revises: 55d77cdbbb49
Create Date: 2022-12-06 10:18:07.322064
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = '3f427be4ce8a'
down_revision = '55d77cdbbb49'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('user', schema=None) as batch_op:
batch_op.add_column(sa.Column('checked_in', sa.Boolean(),
nullable=False, default=False))
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
with op.batch_alter_table('user', schema=None) as batch_op:
batch_op.drop_column('checked_in')
# ### end Alembic commands ###