diff options
Diffstat (limited to 'app/routes.py')
| -rw-r--r-- | app/routes.py | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/app/routes.py b/app/routes.py index cffbae9..ce9b714 100644 --- a/app/routes.py +++ b/app/routes.py @@ -1,6 +1,8 @@ from app import app +from pandas import read_csv from app.forms import LoginForm from app.controller import Session +from werkzeug.utils import secure_filename from flask import ( render_template, request, @@ -48,7 +50,9 @@ def confirm_games(): @app.route("/clear", methods=["POST"]) def clear_games(): - return render_template("games.j2", games=g.all(), title=f"Round: {g.round()}") + return render_template( + "games.j2", games=g.current_round(), title=f"Round: {g.round()}" + ) @app.route("/reset", methods=["POST"]) @@ -66,9 +70,11 @@ def toggle_player(player_request): @app.route("/players", methods=["GET"]) def get_list_of_players(): - regulars, guests = g.players.all() return render_template( - "players.j2", regulars=regulars, guests=guests, url_for=url_for + "players.j2", + regulars=g.players.regulars(), + guests=g.players.guests(), + url_for=url_for, ) @@ -79,6 +85,28 @@ def reset_all_players(): response.headers["HX-Refresh"] = "true" return response +@app.route("/update_players", methods=["POST"]) +def update_all_players(): + file = request.files.get("players") + response = Response("File name or data has issues!", 400) + response.headers["HX-Refresh"] = "true" + if file is None: + return response + elif file.filename is None: + return response + file_name = secure_filename(file.filename) + try: + data = read_csv(file_name) + required_columns = ["id","first_name","last_name","level","team"] + if not all([item in data.columns for item in required_columns]): + raise ImportError(f"All columns aren't available in the data.") + except: + return response + g.players.update(data) + response = Response("Players updated!") + response.headers["HX-Refresh"] = "true" + return response + @app.route("/court-toggle/<court_number>", methods=["POST"]) def toggle_court(court_number): |
