From 74394abdfec9ce3ef3c9e37a4343bab3e713f5b5 Mon Sep 17 00:00:00 2001 From: Cara Salter Date: Fri, 1 Dec 2023 14:21:48 -0500 Subject: [PATCH] Scaffold event blueprint Only has /events/checkin/ for now, but that's progress! --- goathacks/__init__.py | 2 ++ goathacks/events/__init__.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 goathacks/events/__init__.py diff --git a/goathacks/__init__.py b/goathacks/__init__.py index d11608c..52ec1c0 100644 --- a/goathacks/__init__.py +++ b/goathacks/__init__.py @@ -35,10 +35,12 @@ def create_app(): from . import registration from . import dashboard from . import admin + from . import events app.register_blueprint(registration.bp) app.register_blueprint(dashboard.bp) app.register_blueprint(admin.bp) + app.register_blueprint(events.bp) from goathacks import cli diff --git a/goathacks/events/__init__.py b/goathacks/events/__init__.py new file mode 100644 index 0000000..e5c5c5d --- /dev/null +++ b/goathacks/events/__init__.py @@ -0,0 +1,31 @@ +from flask import Blueprint, current_app, flash, redirect, url_for +from flask_login import current_user, login_required + +from goathacks.models import Event, EventCheckins +from goathacks import db + +bp = Blueprint("events", __name__, url_prefix="/events") + +@bp.route("/checkin/") +@login_required +def workshop_checkin(id): + event = Event.query.filter_by(id=id).one() + if event is None: + flash("That event does not exist!") + return redirect(url_for("dashboard.home")) + + checkin = EventCheckins.query.filter_by(event_id=id, + user_id=current_user.id).one() + if checkin is not None: + flash("You've already checked into this event!") + return redirect(url_for("dashboard.home")) + + checkin = EventCheckins( + user_id=current_user.id, + event_id=id + ) + db.session.add(checkin) + db.session.commit() + + flash("You've successfully checked in!") + return redirect(url_for("dashboard.home"))