summaryrefslogtreecommitdiff
path: root/src/match_up
diff options
context:
space:
mode:
authorKaran Jayachandra <mail@karanjayachandra.com>2024-11-15 13:42:39 +0100
committerKaran Jayachandra <mail@karanjayachandra.com>2024-11-15 13:42:39 +0100
commit5b856ff22ea85ecc0073dc94840d76ea2ed2f1e2 (patch)
tree5174a4ae261ae245d2a9f6e84830b180d8337450 /src/match_up
parente8ae44bebdd072b7b555cca5e0b8389d0eb3dbfd (diff)
Added the reset player funcitonality
Diffstat (limited to 'src/match_up')
-rw-r--r--src/match_up/model.py37
-rw-r--r--src/match_up/routes.py10
2 files changed, 32 insertions, 15 deletions
diff --git a/src/match_up/model.py b/src/match_up/model.py
index c5a0af9..b1e77f5 100644
--- a/src/match_up/model.py
+++ b/src/match_up/model.py
@@ -108,23 +108,19 @@ class PlayerList:
guests: dict = {"low": 0, "mid": 0, "high": 0}
def __init__(self, csv_location: str = None) -> None:
+ self._init_database()
+ if csv_location is not None:
+ self._init_database_from_csv(read_csv(csv_location))
+ else:
+ if not isfile(self.db_location):
+ self._init_random_database()
+
+ def _init_database(self):
with path("match_up") as p:
self.db_location = join(p, "players.db")
- generate_random_players = False
- if not isfile(self.db_location):
- print(f"No database file found")
- if csv_location is None:
- generate_random_players = True
engine = create_engine("sqlite:///" + self.db_location, echo=True)
Base.metadata.create_all(bind=engine)
self.session = sessionmaker(bind=engine)()
- if csv_location is not None:
- print(f"CSV file provided, updating the database")
- self.session.query(Player).delete()
- self._init_database_from_csv(read_csv(csv_location))
- elif generate_random_players:
- print(f"Generating random players for testing")
- self._init_random_database()
def increment_guests(self, level: str):
self.guests[level] = self.guests[level] + 1
@@ -202,12 +198,25 @@ class PlayerList:
return active_players + low_guests + mid_guests + high_guests
def increment_game_count(self, player_ids: list[int]):
- return NotImplementedError()
+ players = self.session.query(Player).filter(Player.id.in_(player_ids))
+ for player in players:
+ player.count += 1
+ self.session.commit()
def reset_game_count(self):
- return NotImplementedError()
+ players = self.session.query(Player)
+ for player in players:
+ player.count = 0
+ self.session.commit()
+
+ def reset_all_players(self):
+ players = self.session.query(Player)
+ for player in players:
+ player.status = 0
+ self.session.commit()
def _init_database_from_csv(self, data: DataFrame) -> None:
+ self.session.query(Player).delete()
for _, entry in data.iterrows():
player = Player(
id=entry["id"],
diff --git a/src/match_up/routes.py b/src/match_up/routes.py
index f64eafa..57e9812 100644
--- a/src/match_up/routes.py
+++ b/src/match_up/routes.py
@@ -1,6 +1,6 @@
from match_up import app, rg
from jinja2 import Environment, PackageLoader
-from flask import render_template, request, url_for
+from flask import render_template, request, url_for, Response
re = Environment(loader=PackageLoader("match_up"))
@@ -101,6 +101,14 @@ def get_list_of_players():
return re.get_template("players.j2").render(players=all_players, 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)