From f1640493eca984c526abade01b0b54324ccbddd9 Mon Sep 17 00:00:00 2001 From: Cara Salter Date: Fri, 12 Jan 2024 17:19:17 -0500 Subject: [PATCH] Completely rewrite all backend pages --- goathacks/__init__.py | 3 + goathacks/dashboard/__init__.py | 2 + goathacks/dashboard/forms.py | 4 +- goathacks/registration/__init__.py | 9 +- goathacks/static/css/style.css | 189 +-------------- goathacks/static/css/style.scss | 190 +-------------- goathacks/static/img/banner.png | Bin 0 -> 7174 bytes goathacks/static/img/logo.png | Bin 0 -> 75206 bytes goathacks/templates/admin-layout.html | 38 +++ goathacks/templates/admin.html | 95 +++++++- goathacks/templates/admin_base.html | 24 -- goathacks/templates/admin_old.html | 280 ---------------------- goathacks/templates/base.html | 15 -- goathacks/templates/bootstrap-base.html | 44 ++++ goathacks/templates/dashboard.html | 121 ++++------ goathacks/templates/events/list.html | 9 +- goathacks/templates/events/new_event.html | 44 ++-- goathacks/templates/footer.html | 17 -- goathacks/templates/header.html | 46 ---- goathacks/templates/home | 1 - goathacks/templates/index.html | 195 --------------- goathacks/templates/layout.html | 56 +++++ goathacks/templates/login.html | 48 ++-- goathacks/templates/mail.html | 1 + goathacks/templates/password_reset.html | 27 --- goathacks/templates/pw_reset.html | 24 -- goathacks/templates/register.html | 121 +++++----- goathacks/templates/register_step2.html | 69 ------ goathacks/templates/tos.html | 16 -- requirements.txt | 1 + 30 files changed, 439 insertions(+), 1250 deletions(-) create mode 100644 goathacks/static/img/banner.png create mode 100644 goathacks/static/img/logo.png create mode 100644 goathacks/templates/admin-layout.html delete mode 100644 goathacks/templates/admin_base.html delete mode 100644 goathacks/templates/admin_old.html delete mode 100644 goathacks/templates/base.html create mode 100644 goathacks/templates/bootstrap-base.html delete mode 100644 goathacks/templates/footer.html delete mode 100644 goathacks/templates/header.html delete mode 160000 goathacks/templates/home delete mode 100755 goathacks/templates/index.html create mode 100644 goathacks/templates/layout.html delete mode 100644 goathacks/templates/password_reset.html delete mode 100644 goathacks/templates/pw_reset.html delete mode 100644 goathacks/templates/register_step2.html delete mode 100644 goathacks/templates/tos.html diff --git a/goathacks/__init__.py b/goathacks/__init__.py index c383e88..1939b46 100644 --- a/goathacks/__init__.py +++ b/goathacks/__init__.py @@ -6,6 +6,7 @@ from flask_assets import Bundle, Environment from flask_cors import CORS from flask_mail import Mail, email_dispatched from flask_bootstrap import Bootstrap5 +from flask_font_awesome import FontAwesome from flask_qrcode import QRcode @@ -17,6 +18,7 @@ environment = Environment() cors = CORS() mail = Mail() bootstrap = Bootstrap5() +font_awesome = FontAwesome() qrcode = QRcode() def create_app(): @@ -32,6 +34,7 @@ def create_app(): mail.init_app(app) bootstrap.init_app(app) qrcode.init_app(app) + font_awesome.init_app(app) scss = Bundle('css/style.scss', filters='scss', output='css/style.css') diff --git a/goathacks/dashboard/__init__.py b/goathacks/dashboard/__init__.py index d9ba207..c6d4699 100644 --- a/goathacks/dashboard/__init__.py +++ b/goathacks/dashboard/__init__.py @@ -19,6 +19,8 @@ def home(): current_user.accomodations = request.form.get('accomodations') db.session.commit() flash("Updated successfully") + else: + form = forms.ShirtAndAccomForm(obj=current_user) return render_template("dashboard.html", form=form, resform=resform) @bp.route("/resume", methods=["POST"]) diff --git a/goathacks/dashboard/forms.py b/goathacks/dashboard/forms.py index 4f39717..cdf0969 100644 --- a/goathacks/dashboard/forms.py +++ b/goathacks/dashboard/forms.py @@ -1,10 +1,10 @@ from flask_wtf import FlaskForm from flask_wtf.file import FileField, FileRequired, FileAllowed -from wtforms import RadioField, TextAreaField, SubmitField +from wtforms import SelectField, TextAreaField, SubmitField from wtforms.validators import DataRequired class ShirtAndAccomForm(FlaskForm): - shirt_size = RadioField("Shirt size", choices=["XS", "S", "M", "L", "XL", + shirt_size = SelectField("Shirt size", choices=["XS", "S", "M", "L", "XL", "None"], validators=[DataRequired()]) accomodations = TextAreaField("Special needs and/or Accomodations") diff --git a/goathacks/registration/__init__.py b/goathacks/registration/__init__.py index 63b7888..2d482f2 100644 --- a/goathacks/registration/__init__.py +++ b/goathacks/registration/__init__.py @@ -1,7 +1,7 @@ from datetime import datetime, timedelta from flask import Blueprint, abort, config, current_app, flash, redirect, render_template, request, url_for import flask_login -from flask_login import current_user +from flask_login import current_user, login_required from goathacks.registration.forms import LoginForm, PwResetForm, RegisterForm, ResetForm from werkzeug.security import check_password_hash, generate_password_hash from flask_mail import Message @@ -97,6 +97,13 @@ def login(): return render_template("login.html", form=form) +@bp.route("/logout") +@login_required +def logout(): + flask_login.logout_user() + flash("See you later!") + return redirect(url_for("registration.login")) + @bp.route("/reset", methods=["GET", "POST"]) def reset(): form = ResetForm(request.form) diff --git a/goathacks/static/css/style.css b/goathacks/static/css/style.css index ffdd366..f6983a1 100644 --- a/goathacks/static/css/style.css +++ b/goathacks/static/css/style.css @@ -1,185 +1,18 @@ -@font-face { - font-family: "Krungthep"; - src: url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.eot"); - src: url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.eot?#iefix") format("embedded-opentype"), url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.woff2") format("woff2"), url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.woff") format("woff"), url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.ttf") format("truetype"), url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.svg#Krungthep") format("svg"); +.navbar-dark, .modal-header, .table-header { + background-color: #974355; + color: #FFFFFF; } -html { - height: 100%; +.modal-header, .table-header { + color: #FFFFFF; +} + +.container { + min-height: 100vh; + position: relative; } body { + min-height: 100vh; background-color: #003049; - font-family: 'Montserrat', sans-serif; - font-size: 1.1rem; - color: #eee; - position: relative; - min-height: 100%; -} - -p { - line-height: 2rem; -} - -#logo-container { - display: flex; - justify-content: center; - flex-direction: row; - padding-top: 5px; - padding-bottom: 5px; - height: 100%; - width: 100%; -} - -#goat { - height: 100%; -} - -.button-collapse { - color: #26a69a; -} - -.parallax-container { - min-height: 380px; - line-height: 0; - height: auto; - color: rgba(255, 255, 255, 0.9); -} - -.parallax-container .section { - width: 100%; -} - -label { - color: white !important; -} - -@media only screen and (max-width: 992px) { - .parallax-container .section { - top: 40%; - } - #index-banner .section { - top: 10%; - } -} - -@media only screen and (max-width: 600px) { - .parallax-container .section { - height: auto; - overflow: auto; - } - .container { - height: auto; - } - #index-banner .section { - top: 0; - } -} - -#tagline { - font-weight: 600; -} - -#event-info { - font-weight: 400; -} - -#registration-banner { - min-height: 100px; - max-height: 150px; -} - -#registration-banner .section { - top: auto; -} - -.icon-block { - padding: 0 15px; -} - -.icon-block .material-icons { - font-size: inherit; -} - -.parallax img { - display: inherit; - max-width: 200%; -} - -#mlh-trust-badge { - display: block; - max-width: 100px; - min-width: 60px; - position: fixed; - right: 50px; - top: 0; - width: 10%; - z-index: 10000; -} - -nav { - line-height: normal !important; - font-family: "Jost", sans-serif; - font-weight: 700; -} - -/* -.navbar-brand { -} */ -.footer-nav { - position: absolute; - bottom: 0; - width: 100%; -} - -label { - padding-bottom: 0.5rem; -} - -form input { - border-radius: 5px; -} - -form input[type="submit"] { - background: #26a69a; - border-radius: 10px; - border-color: #26a69a; -} - -form input[type="radio"] { - padding-right: 5px; -} - -form input[type="checkbox"]:checked { - visibility: visible; - left: unset; - position: unset; -} - -form label { - font-size: 1.1rem; - padding-right: 10px; - padding-left: 25px !important; -} - -form select { - display: unset; - background: #974355; - max-width: 11rem; -} - -.flashes { - list-style-type: none; - display: flex; - justify-content: center; -} - -.message { - width: 80%; - justify-content: center; - border: 1px solid #eee; - background-color: #26a69a; - padding: 0.2rem; - font-size: large; - color: #eee; } diff --git a/goathacks/static/css/style.scss b/goathacks/static/css/style.scss index 872912d..1d4396e 100644 --- a/goathacks/static/css/style.scss +++ b/goathacks/static/css/style.scss @@ -1,185 +1,21 @@ +$color-nav-bg: #974355; $color-bg: #003049; -$color-fg: #eee; -$color-section-bg: #974355; -$color-accent: #26a69a; -@font-face {font-family: "Krungthep"; src: url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.eot"); src: url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.eot?#iefix") format("embedded-opentype"), url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.woff2") format("woff2"), url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.woff") format("woff"), url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.ttf") format("truetype"), url("//db.onlinewebfonts.com/t/736cf5b08b01082a3645e14038868e20.svg#Krungthep") format("svg"); } +.navbar-dark, .modal-header, .table-header { + background-color: $color-nav-bg; + color: #FFFFFF; +} -html { - height: 100%; +.modal-header, .table-header { + color: #FFFFFF; +} + +.container { + min-height: 100vh; + position: relative; } body { + min-height: 100vh; background-color: $color-bg; - font-family: 'Montserrat', sans-serif; - font-size: 1.1rem; - color: $color-fg; - position: relative; - min-height: 100%; } - -p { - line-height: 2rem; -} - -#logo-container { - display: flex; - justify-content: center; - flex-direction: row; - padding-top: 5px; - padding-bottom: 5px; - height: 100%; - width: 100%; -} - -#goat { - height: 100%; -} - -.button-collapse { - color: $color-accent; -} - - -.parallax-container { - min-height: 380px; - line-height: 0; - height: auto; - color: rgba(255,255,255,.9); -} -.parallax-container .section { - width: 100%; -} - -label { - color: white !important; -} - -@media only screen and (max-width : 992px) { - .parallax-container .section { - top: 40%; - } - #index-banner .section { - top: 10%; - } -} - -@media only screen and (max-width : 600px) { - .parallax-container .section { - height: auto; - overflow: auto; - } - .container { - height: auto; - } - #index-banner .section { - top: 0; - } -} - -#tagline { - font-weight: 600; -} - -#event-info { - font-weight: 400; -} - -#registration-banner { - min-height: 100px; - max-height: 150px; -} - -#registration-banner .section{ - top: auto; -} - -.icon-block { - padding: 0 15px; -} -.icon-block .material-icons { - font-size: inherit; -} - -.parallax img { - display: inherit; - max-width: 200%; -} - -#mlh-trust-badge { - display: block; - max-width: 100px; - min-width: 60px; - position: fixed; - right: 50px; - top: 0; - width: 10%; - z-index: 10000; -} - -nav { - line-height: normal !important; - font-family: "Jost", sans-serif; - font-weight: 700; -} -/* -.navbar-brand { -} */ - -.footer-nav { - position: absolute; - bottom: 0; - width: 100%; -} - - -// Forms -label { - padding-bottom: 0.5rem; -} -form { - input { - border-radius: 5px; - } - input[type="submit"] { - background: $color-accent; - border-radius: 10px; - border-color: $color-accent; - } - input[type="radio"] { - padding-right: 5px; - } - input[type="checkbox"]:checked { - visibility: visible; - left: unset; - position: unset; - } - label { - font-size: 1.1rem; - padding-right: 10px; - padding-left: 25px !important; - } - select { - display: unset; - background: $color-section-bg; - max-width: 11rem; - } -} - -// Flashed messages -.flashes { - list-style-type: none; - display: flex; - justify-content: center; -} - -.message { - width: 80%; - justify-content: center; - border: 1px solid $color-fg; - background-color: $color-accent; - padding: 0.2rem; - font-size: large; - color: $color-fg; -} - diff --git a/goathacks/static/img/banner.png b/goathacks/static/img/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..d9df52998894cb1a5dc687f73366655286e4f65a GIT binary patch literal 7174 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

X&mz@=v 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 +

+ + + +
+ +{% endblock %} diff --git a/goathacks/templates/admin.html b/goathacks/templates/admin.html index 8891a57..83d8879 100644 --- a/goathacks/templates/admin.html +++ b/goathacks/templates/admin.html @@ -1 +1,94 @@ -{% extends 'admin_base.html' %} +{% extends 'admin-layout.html' %} + +{% block head %} +{{super()}} + + + + + + + +{% endblock %} + +{% block app_content %} +
+
+

Registered Users

+ + + + + + + + + + + + + + + + + + + {% for hacker in hackers %} + + + + + + + + + + + + + + + {% endfor %} + +
OptionsChecked In?Waitlisted?AdminUser IDRegistration TimeEmailNamePhoneShirtSpecialSchool
+ + {{ hacker.checked_in }}{{ hacker.waitlisted }}{{ hacker.is_admin }}{{ hacker.id }}{{ hacker.last_login }}{{ hacker.email }}{{ hacker.first_name + ' ' + hacker.last_name }}{{ hacker.phone }}{{ hacker.shirt_size }}{{ hacker.accomodations }}{{ hacker.school }}
+
+
+{% endblock %} + diff --git a/goathacks/templates/admin_base.html b/goathacks/templates/admin_base.html deleted file mode 100644 index 4aadb02..0000000 --- a/goathacks/templates/admin_base.html +++ /dev/null @@ -1,24 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} -
- -{% block admin_content %} -
- I'm still being worked on! -
-{% endblock admin_content %} -
-{% endblock %} diff --git a/goathacks/templates/admin_old.html b/goathacks/templates/admin_old.html deleted file mode 100644 index bb83a9c..0000000 --- a/goathacks/templates/admin_old.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - Hack @ WPI - - - - - - - - - - - - - - - - - -
-
-
-
JSON object of users from MLH (Including dropped applications):
-

Do NOT share this URL.

-
Get registered hackers only:
-

JSON CSV

-
-
-
-

Gender:

- - -
-
-

Schools:

- - -
-
-

Majors:

- - -
-
-
-

Counts:

- - - - - - - - - - - - - - - - - -
TotalAttendeesWaitlistChecked In
{{ total_count }}{{ (total_count - waitlist_count) }}{{ waitlist_count }}{{ check_in_count }}
- -

Shirts:

- - - - - - - - - - - - - - - - - - - - - - - -
XXSXSSMLXLXXL
{{ shirt_count['XXS'] }}{{ shirt_count['XS'] }}{{ shirt_count['S'] }}{{ shirt_count['M'] }}{{ shirt_count['L'] }}{{ shirt_count['XL'] }}{{ shirt_count['XXL'] }}
- -

Hackers:

- - - - - - - - - - - - - - - - - - - {% for hacker in hackers %} - - - - - - - - - - - - - - - {% endfor %} - -
OptionsChecked In?Waitlisted?AdminMLH IDTime RegisteredEmailNamePhoneShirtSpecialSchool
-
- - -
-
{{ hacker['checked_in'] }}{{ hacker['waitlisted'] }}{{ hacker.is_admin }}{{ hacker['id'] }}{{ hacker['last_login'] }}{{ hacker['email'] }}{{ hacker['first_name'] + ' ' + hacker['last_name'] }}{{ hacker['phone'] }}{{ hacker['shirt_size'] }}{{ hacker['accomodations'] }}{{ hacker['school'] }}
-
-
-
- - - - - - diff --git a/goathacks/templates/base.html b/goathacks/templates/base.html deleted file mode 100644 index e86ee39..0000000 --- a/goathacks/templates/base.html +++ /dev/null @@ -1,15 +0,0 @@ -{% include 'header.html' %} -{% from 'bootstrap5/utils.html' import render_messages %} - -
- {{ render_messages() }} - -{% block content %} - -This content block is still being worked on! - -{% endblock %} -
- -{% include 'footer.html' %} diff --git a/goathacks/templates/bootstrap-base.html b/goathacks/templates/bootstrap-base.html new file mode 100644 index 0000000..04b47e6 --- /dev/null +++ b/goathacks/templates/bootstrap-base.html @@ -0,0 +1,44 @@ + +{% from 'bootstrap5/nav.html' import render_nav_item %} +{% from 'bootstrap5/utils.html' import render_messages %} + + + + + {% block head %} + {% if title %} + {{ title }} - GoatHacks + {% else %} + GoatHacks + {% endif %} + + + + {% block styles %} + + {{ bootstrap.load_css() }} + {% endblock %} + + {% endblock %} + + + + {% block navbar %}{% endblock %} + + +
+
+ {{ render_messages(container=False, dismissible=True, dismiss_animate=True) }} +
+ + {% block app_content %}{% endblock %} + +
+ + {% block scripts %} + + {{ bootstrap.load_js() }} + {% endblock %} + + + diff --git a/goathacks/templates/dashboard.html b/goathacks/templates/dashboard.html index 6f199cc..649ec80 100644 --- a/goathacks/templates/dashboard.html +++ b/goathacks/templates/dashboard.html @@ -1,89 +1,50 @@ -{% extends 'base.html' %} -{% from 'bootstrap5/form.html' import render_form %} +{% extends 'layout.html' %} +{% from 'bootstrap5/form.html' import render_field %} -{% block content %} - - +

Let us know if you have any questions by sending + them to hack@wpi.edu

-
-
- -

Hi {{ current_user.first_name }}!


- -
-
- {% if current_user.waitlisted %} -

You're currently waitlisted, keep checking your email to see if space - opens up!

- {% else %} -
-
-

Your registration is confirmed! We're looking forward to seeing you at - GoatHacks!

-
-
-

Let us know if you have any questions - by sending them to hack@wpi.edu

-
-
-
-

Make sure you join the Discord and add your shirt size as well as any - needed accomodations below

-
- -
- -
- -
-
-
-
- {{ render_form(form) }} +
+
+ {{ form.csrf_token() }} +

Optional Info

+
+ {{ form.shirt_size(class="form-control", selected=current_user.shirt_size) }} + {{ form.shirt_size.label() }}
-
-
-
-
- - {{ resform.csrf_token }} -

If you'd like, add your resume to send to sponsors...

-
-
- - -
- +
+ {{ form.accomodations(class="form-control") }} + {{ form.accomodations.label() }}
+ {{ render_field(form.submit) }} + +
+
+
+
+ {{ resform.csrf_token() }} +

If you'd like, add your resume to send to + sponsors...

+
+ {{ resform.resume(class="form-control") }} +
+ {{ render_field(resform.submit) }} +
+
+
- {% endif %}
- - {% endblock %} diff --git a/goathacks/templates/events/list.html b/goathacks/templates/events/list.html index 2aae898..1a62336 100644 --- a/goathacks/templates/events/list.html +++ b/goathacks/templates/events/list.html @@ -1,8 +1,9 @@ -{% extends 'base.html' %} +{% extends 'admin-layout.html' %} -{% block content %} +{% block app_content %} +
-
+

Events

Get a JSON readout of events here @@ -39,5 +40,5 @@
- +
{% endblock %} diff --git a/goathacks/templates/events/new_event.html b/goathacks/templates/events/new_event.html index caba4bb..a4930d6 100644 --- a/goathacks/templates/events/new_event.html +++ b/goathacks/templates/events/new_event.html @@ -1,6 +1,7 @@ -{% extends 'base.html' %} +{% extends 'admin-layout.html' %} -{% block content %} +{% block app_content %} +
@@ -9,30 +10,39 @@
-
{{ form.csrf_token }} -
- {{ form.name}}
{{ form.name.label }} +
+ {{ form.name(class="form-control") }} + {{ form.name.label }}
-
- {{ form.description}}
{{form.description.label}} +
+ {{ form.description(class="form-control") }} + {{form.description.label}}
-
- {{ form.location}}
{{form.location.label}} +
+ {{ form.location(class="form-control")}} + {{form.location.label}}
-
- {{form.start_time}}
{{form.start_time.label}} +
+
+
+ {{form.start_time(class="form-control")}} + {{form.start_time.label}}
-
- {{form.end_time}}
{{form.end_time.label}} +
+
+
+ {{form.end_time(class="form-control")}} + {{form.end_time.label}}
-
- {{form.category}}
{{form.category.label}} +
+
+
+ {{form.category(class="form-control")}} + {{form.category.label}}
-
{{form.submit}} -
diff --git a/goathacks/templates/footer.html b/goathacks/templates/footer.html deleted file mode 100644 index 45d62a6..0000000 --- a/goathacks/templates/footer.html +++ /dev/null @@ -1,17 +0,0 @@ - -
- - {{ bootstrap.load_js() }} - - diff --git a/goathacks/templates/header.html b/goathacks/templates/header.html deleted file mode 100644 index c3b5d78..0000000 --- a/goathacks/templates/header.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - {{ bootstrap.load_css() }} - - - - - - - - - diff --git a/goathacks/templates/home b/goathacks/templates/home deleted file mode 160000 index e0fb69c..0000000 --- a/goathacks/templates/home +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e0fb69c0be54c6cce7391ccb86a9bf14b80f432b diff --git a/goathacks/templates/index.html b/goathacks/templates/index.html deleted file mode 100755 index e403835..0000000 --- a/goathacks/templates/index.html +++ /dev/null @@ -1,195 +0,0 @@ -{% include 'header.html' %} - -
- - -
- Attention! Due to the road conditions, we have delayed the schedule by an hour. We will still have live presentations, but submissions have been extended until 9am, and judging will take place at 10am. -
- -
- -
- - -
-

A HACKATHON FOR ALL COLLEGE STUDENTS

-
- - -

WPI Campus Center

-

100 Institute Road

-

Worcester, MA 01609

-
- - - - -

OUR SPONSORS FOR 2020

- -
-
-
-
-
-

WPI Computer Science Department

-
- -
- - - - -
- -
- -
- -
- - - - - -
- -
-
- - -
-
-

FAQs

- -
-

Who can attend?

-
Our event is open to any college student! You don’t need any experience to participate. However, due to legal issues, anyone under 18 must have a legal guardian present and cannot win prizes
-
- -
-

What is the max team size?

-
The maximum is 5 people per team. Minimum is 1 :P
-
- -
-

What are the awards for?

-
The categories this year are:
-
Best Overall Project -
Best Game
-
Best Software
-
Best Hardware
-
Company Favorite
-
Best Use of the Bose API/SDK
-
Best Meme
-
Best Rookie
-
- -
-

What should I bring?

-
Bring devices, chargers, sleeping bags, toiletries, basically anything you need to be comfortable. We will provide showers at certain time slots during the weekend. Food will also be provided.
-
- -
-

What if I don't have a team?

-
You don’t need a team to register! We will have a team formation session right after the opening ceremony for those who would like to work with a team. If you prefer to stay solo, that’s also great.
-
- -
-

How should I prepare beforehand?

-
Make sure you have travel plans in place, especially in case of random snowfalls. Unfortunately, we do not provide travel reimbursements. - It’s also nice to have an idea in mind beforehand. However, we ask that you do not bring any pre-made materials to keep the competition fair.
-
- -
-

What is the schedule?

-
Here it is! Keep in mind that this is tentative.
-
-
- -
- -{% include 'footer.html' %} diff --git a/goathacks/templates/layout.html b/goathacks/templates/layout.html new file mode 100644 index 0000000..e346a1d --- /dev/null +++ b/goathacks/templates/layout.html @@ -0,0 +1,56 @@ +{% extends 'bootstrap-base.html' %} + +{% block html_attribs %} lang="en"{% endblock %} + +{% block title %}{% if title %}{{ title }} - GoatHacks{% else %}GoatHacks{% +endif %}{% endblock %} + +{% block head %} +{{super()}} +{{ font_awesome.load_css() }} +{% endblock %} + +{% block styles %} +{{super()}} +{% assets 'scss' %} + +{% endassets %} +{% endblock %} + +{% block navbar %} + +{% endblock %} diff --git a/goathacks/templates/login.html b/goathacks/templates/login.html index dfcbc43..a59533f 100644 --- a/goathacks/templates/login.html +++ b/goathacks/templates/login.html @@ -1,24 +1,34 @@ -{% extends 'base.html' %} -{% from 'bootstrap5/form.html' import render_form %} +{% extends 'layout.html' %} +{% from 'bootstrap5/form.html' import render_field %} -{% block content %} -
-
-
-

Login

+{% block app_content %} +
+
+ GoatHacks 2024 Banner +

Welcome back to GoatHacks!

+

If you've already registered, please use this page + to access your participant dashboard. Otherwise, please use the + registration page to register!

+ +
+
+ {{ form.csrf_token() }} +
+ {{ form.email(class="form-control") }} + {{ form.email.label() }} +
+
+ {{ form.password(class="form-control") }} + {{ form.password.label() }} +
+ {{ render_field(form.submit) }} +
-
-
- {{ render_form(form) }} -

Don't have an account? Register - here.

- -

Forgot your password? Head over here - to reset it.

-
-
{% endblock %} diff --git a/goathacks/templates/mail.html b/goathacks/templates/mail.html index e25143b..f58fef7 100644 --- a/goathacks/templates/mail.html +++ b/goathacks/templates/mail.html @@ -99,3 +99,4 @@ + diff --git a/goathacks/templates/password_reset.html b/goathacks/templates/password_reset.html deleted file mode 100644 index 582fb82..0000000 --- a/goathacks/templates/password_reset.html +++ /dev/null @@ -1,27 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} -
-
-
-

Reset Password

-
-
-
-
-
-
- {{ form.csrf_token }} -
- {{form.password}}
{{form.password.label}} -
-
- {{form.password_confirm}}
{{form.password_confirm.label}} -
-
- {{form.submit}} -
-
-
-
-{% endblock %} diff --git a/goathacks/templates/pw_reset.html b/goathacks/templates/pw_reset.html deleted file mode 100644 index 15722ab..0000000 --- a/goathacks/templates/pw_reset.html +++ /dev/null @@ -1,24 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} -
-
-
-

Reset Password

-
-
-
-
-
-
- {{ form.csrf_token }} -
- {{ form.email }}
{{ form.email.label}} -
-
- {{form.submit}} -
-
-
-
-{% endblock %} diff --git a/goathacks/templates/register.html b/goathacks/templates/register.html index b1d28ad..0dfb90f 100644 --- a/goathacks/templates/register.html +++ b/goathacks/templates/register.html @@ -1,62 +1,69 @@ -{% extends 'base.html' %} -{% from 'bootstrap5/form.html' import render_form %} +{% extends 'layout.html' %} +{% from 'bootstrap5/form.html' import render_field %} -{% block content %} -
-
-
-

Registration

+{% block app_content %} +
+
+ GoatHacks Banner +

Welcome to GoatHacks!

+

Please use this page to register for this year's + Hackathon. Accounts from prior years are not carried over!

+ +
+
+ {{ form.csrf_token() }} +
+ {{ form.email(class="form-control") }} + {{ form.email.label() }} +
+
+
+
+ {{ form.password(class="form-control") }} + {{ form.password.label() }} +
+
+
+
+ {{ form.password_confirm(class="form-control") }} + {{ form.password_confirm.label() }} +
+
+
+
+
+
+ {{ form.first_name(class="form-control") }} + {{ form.first_name.label() }} +
+
+
+
+ {{ form.last_name(class="form-control") }} + {{ form.last_name.label() }} +
+
+
+
+ {{ form.school(class="form-control") }} + {{ form.school.label() }} +
+
+ {{ form.phone_number(class="form-control") }} + {{ form.phone_number.label() }} +
+
+ {{ form.gender(class="form-control") }} + {{ form.gender.label() }} +
+
+ {{ form.agree_coc }} + {{ form.agree_coc.label() }} +
+ {{ render_field(form.submit) }} +
-
-
- - {{ render_form(form) }} - -

You may also want to - log in.

-
-
{% endblock %} - diff --git a/goathacks/templates/register_step2.html b/goathacks/templates/register_step2.html deleted file mode 100644 index bcd68eb..0000000 --- a/goathacks/templates/register_step2.html +++ /dev/null @@ -1,69 +0,0 @@ -{% include 'header.html' %} - - - -
-
-
-

Registration

-
-
background
-
-
-
-

Hi {{ name }}, just a few more steps!

-
-
-
-

If you'd like, add your resume to send to sponsors...

-
-
- File - -
-
- -
-
-
-

No worries if you don't have one on hand, you can come back and upload it later via the Hack@WPI dashboard!

-

Please take a moment to review the following policies and check all the boxes below so we can finalize your registration:

-

-

Hack@WPI's Terms and Conditions
-

-

-

MLH's Data Sharing Notice
-

-

-

MLH's Privacy Policy
-

-

-

MLH's - Contest Terms and Conditions
-

-

-

MLH's Code of Conduct
-

-
- - - - - -

-
-
-
-
-
-{% include 'footer.html' %} diff --git a/goathacks/templates/tos.html b/goathacks/templates/tos.html deleted file mode 100644 index 09c3da5..0000000 --- a/goathacks/templates/tos.html +++ /dev/null @@ -1,16 +0,0 @@ -{% include 'header.html' %} - -
-

- I agree to hold harmless the organizers of HACK@WPI and WPI’s Chapter of the Association of Computing Machinery (ACM) from any and all claims, lawsuits, demands, causes of action, liability, loss, damage and/or injury of any kind whatsoever (including without limitation all claims for monetary loss, property damager, equitable relief, personal injury and/or wrongful death), whether brought by an individual or other entity. The indemnification applies to and includes, without limitation, the payment of all penalties, fines, judgments, awards, decrees, attorneys’ fees, and related costs or expenses, and any reimbursements to ACM for all legal fees, expenses, and costs incurred by it. -

- -

- I also acknowledge the organizers of HACK@WPI will be recording the event using video, photographs, audio recordings, and other media and give them permission to use said media in marketing/promotional materials. -

-
- - -
- {% include 'footer.html' %} -
diff --git a/requirements.txt b/requirements.txt index 0e70b19..57c7e1c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,3 +24,4 @@ Werkzeug==2.2.2 WTForms==3.0.1 ulid bootstrap-flask +Font-Awesome-Flask