diff options
| author | Karan Jayachandra <mail@karanjayachandra.com> | 2024-11-15 17:26:47 +0000 |
|---|---|---|
| committer | Karan Jayachandra <mail@karanjayachandra.com> | 2024-11-15 17:26:47 +0000 |
| commit | 7b7f8cdef5f035ccdab714059c1a6c54b80c4ba3 (patch) | |
| tree | 2d7ea5de37f2bda57be419b4aa37971afa09eab5 /src/match_up/routes.py | |
| parent | f68c54ae8f921c23851680b2501fac8bda1b4010 (diff) | |
| parent | 7b8bbe6db3680af65c3701afbcd31ac1f61773af (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.py | 99 |
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()) |
