From ec3af3f76ae1785bfb8c1dfbc69788e95fc7954d Mon Sep 17 00:00:00 2001 From: Karan Jayachandra Date: Mon, 14 Jul 2025 09:23:32 +0200 Subject: Working app, guests implementation pending --- app/controller.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'app/controller.py') diff --git a/app/controller.py b/app/controller.py index 5bdeba7..d8a178f 100644 --- a/app/controller.py +++ b/app/controller.py @@ -2,7 +2,7 @@ from math import floor from app import app, db from datetime import date from operator import attrgetter -from sqlalchemy import select, func, Date +from sqlalchemy import func, Date from app.model import ( Player, Players, @@ -29,6 +29,7 @@ class Session: def __init__(self): with app.app_context(): + games = db.session.query(Game) db.session.query(Game).delete() id = self.players.default_id() player_data = {f"player_{i+1}": id for i in range(4)} @@ -38,9 +39,10 @@ class Session: db.session.commit() def round(self) -> int: - games = db.session.query(Game).filter(func.date(Game.date) == date.today()).all() + games = ( + db.session.query(Game).filter(func.date(Game.date) == date.today()).all() + ) round_id = max([game.round_id for game in games]) - print(round_id) if round_id is None: raise ValueError(f"Database isn't initialized") return round_id @@ -60,7 +62,7 @@ class Session: p = db.session.get(Player, getattr(game, f"player_{i+1}")) if p is None: raise ValueError(f"Player id mismatch.") - dp.append(p) + dp.append(p) t1 = DisplayTeam(DisplayPlayer(dp[0]), DisplayPlayer(dp[1])) t2 = DisplayTeam(DisplayPlayer(dp[2]), DisplayPlayer(dp[3])) db.session.get(Player, game.player_2) @@ -72,8 +74,6 @@ class Session: reserved_games = get_placeholder_games(reserved_courts, "RESERVED") active_courts = self.courts.active() active_players = self.players.active() - for player in active_players: - print(player) game_count = floor(len(active_players) / app.config["PLAYERS_PER_COURT"]) game_count = min(len(active_courts), game_count) used_courts = active_courts[:game_count] @@ -93,8 +93,18 @@ class Session: def confirm(self) -> list[DisplayGame]: if len(self.proposal) == 0: return self.all() + round_number = self.round() + 1 for game in self.proposal: - db.session.add(game) + db.session.add( + Game( + round_number, + game.court_id, + game.team_1.player_1.id, + game.team_1.player_2.id, + game.team_2.player_1.id, + game.team_2.player_2.id, + ) + ) db.session.commit() self.proposal = [] return self.all() -- cgit v1.3.1