aboutsummaryrefslogtreecommitdiff
path: root/src/match_up/routes.py
diff options
context:
space:
mode:
authorKaran Jayachandra <mail@karanjayachandra.com>2024-11-15 17:26:47 +0000
committerKaran Jayachandra <mail@karanjayachandra.com>2024-11-15 17:26:47 +0000
commit7b7f8cdef5f035ccdab714059c1a6c54b80c4ba3 (patch)
tree2d7ea5de37f2bda57be419b4aa37971afa09eab5 /src/match_up/routes.py
parentf68c54ae8f921c23851680b2501fac8bda1b4010 (diff)
parent7b8bbe6db3680af65c3701afbcd31ac1f61773af (diff)
Merge branch 'develop' into 'main'2.0
Database and javascript timer implemented See merge request KaranJayachandra/match_up!11
Diffstat (limited to 'src/match_up/routes.py')
-rw-r--r--src/match_up/routes.py99
1 files changed, 99 insertions, 0 deletions
diff --git a/src/match_up/routes.py b/src/match_up/routes.py
new file mode 100644
index 0000000..c0e77aa
--- /dev/null
+++ b/src/match_up/routes.py
@@ -0,0 +1,99 @@
+from match_up import _app, _rg
+from jinja2 import Environment, PackageLoader
+from flask import render_template, request, url_for, Response
+
+re = Environment(loader=PackageLoader("match_up"))
+
+
+@_app.route("/", methods=["GET"])
+def home():
+ return re.get_template("index.j2").render(url_for=url_for)
+
+
+@_app.route("/control", methods=["GET"])
+def get_controls():
+ return render_template("controls.j2", courts=_rg.courts.get_courts())
+
+
+@_app.route("/increment_guest", methods=["POST"])
+def increment_guests():
+ level = int(request.form["level"].split()[0])
+ t = re.from_string(
+ '{% from "macros.j2" import guest_control %}{{guest_control(level, value)}}'
+ )
+ value = _rg.players.increment_guests(level)
+ return render_template(t, level=level, value=value)
+
+
+@_app.route("/decrement_guest", methods=["POST"])
+def decrement_guests():
+ print(request.form["level"])
+ level = int(request.form["level"])
+ t = re.from_string(
+ '{% from "macros.j2" import guest_control %}{{guest_control(level, value)}}'
+ )
+ value = _rg.players.decrement_guests(level)
+ return render_template(t, level=level, value=value)
+
+
+@_app.route("/propose", methods=["POST"])
+def get_random_games():
+ levels = int(request.form["type"].split()[0])
+ return render_template("games.j2", games=_rg.propose(levels), title="Proposal")
+
+
+@_app.route("/confirm", methods=["POST"])
+def confirm_games():
+ return render_template("games.j2", games=_rg.confirm(), title=f"Round: {_rg.round}")
+
+
+@_app.route("/clear", methods=["POST"])
+def clear_games():
+ return render_template("games.j2", games=_rg.clear(), title=f"Round: {_rg.round}")
+
+
+@_app.route("/reset", methods=["POST"])
+def reset_games():
+ return render_template("games.j2", games=_rg.reset(), title=f"Round: {_rg.round}")
+
+
+@_app.route("/player-toggle/<player_request>", methods=["POST"])
+def toggle_player(player_request):
+ id = int(player_request)
+ player = _rg.players.toggle_player_status(id)
+ t = re.from_string(
+ '{% from "macros.j2" import player_button %}{{player_button(player)}}'
+ )
+ return render_template(t, player=player)
+
+
+@_app.route("/players", methods=["GET"])
+def get_list_of_players():
+ all_players = _rg.players.get_all_players()
+ guests = _rg.players.get_guests()
+ return re.get_template("players.j2").render(
+ players=all_players, guests=guests, url_for=url_for
+ )
+
+
+@_app.route("/reset_players", methods=["POST"])
+def reset_all_players():
+ _rg.players.reset_all_players()
+ response = Response("Players reset!")
+ response.headers["HX-Refresh"] = "true"
+ return response
+
+
+@_app.route("/court-toggle/<court_number>", methods=["POST"])
+def toggle_court(court_number):
+ id = int(court_number)
+ status = _rg.courts.toggle_court_status(id)
+ t = re.from_string(
+ '{% from "macros.j2" import court_button %}{{ court_button(id, status) }}'
+ )
+ return render_template(t, id=id, status=status)
+
+
+@_app.route("/courts", methods=["GET"])
+def get_list_of_courts():
+ return render_template("courts.j2", courts=_rg.courts.get_courts())