aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/staff/jams/create.py
diff options
context:
space:
mode:
Diffstat (limited to 'pysite/views/staff/jams/create.py')
-rw-r--r--pysite/views/staff/jams/create.py61
1 files changed, 0 insertions, 61 deletions
diff --git a/pysite/views/staff/jams/create.py b/pysite/views/staff/jams/create.py
deleted file mode 100644
index ef61cbef..00000000
--- a/pysite/views/staff/jams/create.py
+++ /dev/null
@@ -1,61 +0,0 @@
-import datetime
-
-from flask import redirect, request, url_for
-from werkzeug.exceptions import BadRequest
-
-from pysite.base_route import RouteView
-from pysite.constants import ALL_STAFF_ROLES
-from pysite.decorators import csrf, require_roles
-from pysite.mixins import DBMixin
-
-REQUIRED_KEYS = ["title", "date_start", "date_end"]
-
-
-class StaffView(RouteView, DBMixin):
- path = "/jams/create"
- name = "jams.create"
- table_name = "code_jams"
-
- @require_roles(*ALL_STAFF_ROLES)
- def get(self):
- number = self.get_next_number()
- return self.render("staff/jams/create.html", number=number)
-
- @require_roles(*ALL_STAFF_ROLES)
- @csrf
- def post(self):
- data = {}
-
- for key in REQUIRED_KEYS:
- arg = request.form.get(key)
-
- if not arg:
- return BadRequest()
-
- data[key] = arg
-
- data["state"] = "planning"
- data["number"] = self.get_next_number()
-
- # Convert given datetime strings into actual objects, adding timezones to keep rethinkdb happy
- date_start = datetime.datetime.strptime(data["date_start"], "%Y-%m-%d %H:%M")
- date_start = date_start.replace(tzinfo=datetime.timezone.utc)
-
- date_end = datetime.datetime.strptime(data["date_end"], "%Y-%m-%d %H:%M")
- date_end = date_end.replace(tzinfo=datetime.timezone.utc)
-
- data["date_start"] = date_start
- data["date_end"] = date_end
-
- self.db.insert(self.table_name, data)
-
- return redirect(url_for("staff.jams.index"))
-
- def get_next_number(self) -> int:
- count = self.db.run(self.table.count(), coerce=int)
-
- if count:
- max_num = self.db.run(self.table.max("number"))["number"]
-
- return max_num + 1
- return 1