aboutsummaryrefslogtreecommitdiff
path: root/app/routes.py
diff options
context:
space:
mode:
authorKaran Jayachandra <mail@karanjayachandra.com>2025-07-14 12:25:55 +0200
committerKaran Jayachandra <mail@karanjayachandra.com>2025-07-14 12:25:55 +0200
commit729203409fb73fdbac19b8af9d647883a5ac96b0 (patch)
tree5cef1d2b3f7bb61551dd105974e66b11b81fff98 /app/routes.py
parentec3af3f76ae1785bfb8c1dfbc69788e95fc7954d (diff)
Back to working
Diffstat (limited to 'app/routes.py')
-rw-r--r--app/routes.py34
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):