aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/staff/jams/actions.py
diff options
context:
space:
mode:
authorGravatar Momo <[email protected]>2018-07-04 23:43:37 +0000
committerGravatar Gareth Coles <[email protected]>2018-07-04 23:43:37 +0000
commit8519357d2613a870a56a4c1769b4da9069bb0db4 (patch)
tree3e34a5468aac7c588fefd51edb04a67e25794794 /pysite/views/staff/jams/actions.py
parentUpdate channel listing (diff)
Revamp jam index, add winner team staff backend and user frontend
Diffstat (limited to 'pysite/views/staff/jams/actions.py')
-rw-r--r--pysite/views/staff/jams/actions.py43
1 files changed, 42 insertions, 1 deletions
diff --git a/pysite/views/staff/jams/actions.py b/pysite/views/staff/jams/actions.py
index 761ba7d6..dfcbf2de 100644
--- a/pysite/views/staff/jams/actions.py
+++ b/pysite/views/staff/jams/actions.py
@@ -11,7 +11,7 @@ GET_ACTIONS = ("questions",)
POST_ACTIONS = (
"associate_question", "disassociate_question", "infraction", "questions", "state", "approve_application",
"unapprove_application", "create_team", "generate_teams", "set_team_member",
- "reroll_team"
+ "reroll_team", "set_winning_team", "unset_winning_team"
)
DELETE_ACTIONS = ("infraction", "question", "team")
@@ -398,6 +398,47 @@ class ActionView(APIView, DBMixin, RMQMixin):
return jsonify({"name": team_obj["name"]})
+ if action == "set_winning_team":
+ team = request.form.get("team")
+
+ if not team:
+ return self.error(
+ ErrorCodes.incorrect_parameters, "Team ID required"
+ )
+
+ team_obj = self.db.get(self.teams_table, team)
+
+ if not team_obj:
+ return self.error(
+ ErrorCodes.incorrect_parameters, "Unknown team ID"
+ )
+
+ jam_number = team_obj["jam"]
+ jam_obj = self.db.get(self.table_name, jam_number)
+ jam_obj["winning_team"] = team
+ self.db.insert(self.table_name, jam_obj, conflict="replace")
+
+ return jsonify({"result": "success"})
+
+ if action == "unset_winning_team":
+ jam = request.form.get("jam", type=int)
+
+ if not jam:
+ return self.error(
+ ErrorCodes.incorrect_parameters, "Jam number required"
+ )
+
+ jam_obj = self.db.get(self.table_name, jam)
+ if not jam_obj:
+ return self.error(
+ ErrorCodes.incorrect_parameters, "Unknown jam number"
+ )
+
+ jam_obj["winning_team"] = None
+ self.db.insert(self.table_name, jam_obj, conflict="replace")
+
+ return jsonify({"result": "success"})
+
if action == "approve_application":
app = request.form.get("id")