From 274d4050ee4aa5557d9b217942a7c5f878b0686d Mon Sep 17 00:00:00 2001 From: Cara Salter Date: Thu, 21 Mar 2024 10:12:17 +1100 Subject: [PATCH] Make event editing work --- acmsite/admin/__init__.py | 71 +++++++++++++++++------------ acmsite/templates/admin/events.html | 13 ++++-- 2 files changed, 53 insertions(+), 31 deletions(-) diff --git a/acmsite/admin/__init__.py b/acmsite/admin/__init__.py index 8b2f57d..faa5103 100644 --- a/acmsite/admin/__init__.py +++ b/acmsite/admin/__init__.py @@ -31,7 +31,7 @@ def users(): return render_template("admin/users.html", u_list=user_list) -@bp.route("/events", methods=["GET","POST"]) +@bp.route("/events") @login_required def events(): if not current_user.is_admin: @@ -41,33 +41,6 @@ def events(): event_list = Event.query.all() form = EventForm(request.form) - - if request.method == 'POST': - name = request.form.get('name') - description = request.form.get('description') - location = request.form.get('location') - start_day = request.form.get('start_day') - start_time = request.form.get('start_time') - end_day = request.form.get('end_day') - end_time = request.form.get('end_time') - print(start_day) - print(start_time) - - start = datetime.datetime.combine(datetime.date.fromisoformat(start_day), - datetime.time.fromisoformat(start_time)) - end = datetime.datetime.combine(datetime.date.fromisoformat(end_day), - datetime.time.fromisoformat(end_time)) - - e = Event( - id=ulid.ulid(), - name=name, - description=description, - location=location, - start_time=start, - end_time=end) - db.session.add(e) - db.session.commit() - return render_template("admin/events.html", e_list=event_list, form=form) @bp.route("/event/") @@ -99,3 +72,45 @@ def delete_event(id): db.session.commit() return {"status": "success"} + +@bp.route("/event/", methods=["POST"]) +@login_required +def update_create_event(id): + + + name = request.form.get('name') + description = request.form.get('description') + location = request.form.get('location') + start_day = request.form.get('start_day') + start_time = request.form.get('start_time') + end_day = request.form.get('end_day') + end_time = request.form.get('end_time') + start = datetime.datetime.combine(datetime.date.fromisoformat(start_day), + datetime.time.fromisoformat(start_time)) + end = datetime.datetime.combine(datetime.date.fromisoformat(end_day), + datetime.time.fromisoformat(end_time)) + + if id == '0': + # new event + e = Event( + id=ulid.ulid(), + name=name, + description=description, + location=location, + start_time=start, + end_time=end) + db.session.add(e) + db.session.commit() + else: + e = Event.query.filter_by(id=id).first() + if e is None: + return {"status": "error", "message": "Invalid event ID"} + e.name = name + e.description = description + e.location = location + e.start_time = start + e.end_time = end + db.session.commit() + + + return redirect(url_for("admin.events")) diff --git a/acmsite/templates/admin/events.html b/acmsite/templates/admin/events.html index c2c6822..c8fbeed 100644 --- a/acmsite/templates/admin/events.html +++ b/acmsite/templates/admin/events.html @@ -12,7 +12,7 @@ Start Time End Time + data-bs-target="#editModal" data-id="0">New @@ -52,7 +52,7 @@

Event

-
+
@@ -128,6 +128,7 @@