diff options
| author | 2018-07-04 23:43:37 +0000 | |
|---|---|---|
| committer | 2018-07-04 23:43:37 +0000 | |
| commit | 8519357d2613a870a56a4c1769b4da9069bb0db4 (patch) | |
| tree | 3e34a5468aac7c588fefd51edb04a67e25794794 /pysite/views | |
| parent | Update channel listing (diff) | |
Revamp jam index, add winner team staff backend and user frontend
Diffstat (limited to 'pysite/views')
| -rw-r--r-- | pysite/views/main/jams/index.py | 6 | ||||
| -rw-r--r-- | pysite/views/staff/jams/actions.py | 43 | 
2 files changed, 48 insertions, 1 deletions
diff --git a/pysite/views/main/jams/index.py b/pysite/views/main/jams/index.py index 652779b2..0cd9a287 100644 --- a/pysite/views/main/jams/index.py +++ b/pysite/views/main/jams/index.py @@ -29,6 +29,12 @@ class JamsIndexView(RouteView, DBMixin):          )          jams = self.db.run(query, coerce=list) +        for jam in jams: +            if "winning_team" in jam and jam["winning_team"]: +                jam["winning_team"] = self.db.get(self.teams_table, jam["winning_team"]) +            else: +                jam["winning_team"] = None +                pass          return self.render("main/jams/index.html", jams=jams, has_applied_to_jam=self.has_applied_to_jam)      def get_jam_response(self, jam, user_id): 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")  |