diff options
| author | Karan Jayachandra <mail@karanjayachandra.com> | 2024-11-15 13:42:39 +0100 |
|---|---|---|
| committer | Karan Jayachandra <mail@karanjayachandra.com> | 2024-11-15 13:42:39 +0100 |
| commit | 5b856ff22ea85ecc0073dc94840d76ea2ed2f1e2 (patch) | |
| tree | 5174a4ae261ae245d2a9f6e84830b180d8337450 /src | |
| parent | e8ae44bebdd072b7b555cca5e0b8389d0eb3dbfd (diff) | |
Added the reset player funcitonality
Diffstat (limited to 'src')
| -rw-r--r-- | src/match_up/model.py | 37 | ||||
| -rw-r--r-- | src/match_up/routes.py | 10 |
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) |
