From 6ebbee2016b0232573ad1d322b4d4ca6287b3599 Mon Sep 17 00:00:00 2001 From: Karan Jayachandra Date: Mon, 2 Dec 2024 17:44:24 +0100 Subject: Added the guests with history and level --- src/match_up/model.py | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) (limited to 'src/match_up/model.py') diff --git a/src/match_up/model.py b/src/match_up/model.py index c42823b..4ac8c54 100644 --- a/src/match_up/model.py +++ b/src/match_up/model.py @@ -5,12 +5,7 @@ from dataclasses import dataclass from importlib.resources import path from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine, not_ -from match_up.utilities import ( - generate_guests, - _init_database_from_csv, - _init_random_database, - _textualize_guest, -) +from match_up.utilities import _init_database_from_csv, _init_random_database from match_up.data import ( Player, DisplayPlayer, @@ -44,7 +39,6 @@ class CourtList: class PlayerList: - guest_count: dict = {1: 0, 3: 0, 5: 0} def __init__(self, csv_location=None) -> None: with path("match_up", "players.db") as p: @@ -64,16 +58,6 @@ class PlayerList: BASE.metadata.create_all(bind=engine) self.session = sessionmaker(bind=engine)() - def increment_guests(self, level: int): - self.guest_count[level] = self.guest_count[level] + 1 - return _textualize_guest(level, self.guest_count[level]) - - def decrement_guests(self, level: int): - if self.guest_count[level] == 0: - return 0 - self.guest_count[level] = self.guest_count[level] - 1 - return _textualize_guest(level, self.guest_count[level]) - def get_player_status(self, id: int) -> bool: return self.session.query(Player).filter(Player.id == id).first().status @@ -83,14 +67,17 @@ class PlayerList: self.session.commit() return DisplayPlayer(player) - def get_all_players(self) -> list[DisplayPlayer]: + def get_all_players(self) -> Tuple[list[DisplayPlayer], list[DisplayPlayer]]: all_players = [ DisplayPlayer(p) for p in self.session.query(Player) .order_by(Player.first, Player.last) .all() ] - return all_players + regulars = [player for player in all_players if player.first != "Guest"] + guests = [player for player in all_players if player.first == "Guest"] + guests.sort(key=lambda x: int(x.last)) + return regulars, guests def get_possible_game_count(self) -> int: total_players = len(self.get_players()) @@ -104,14 +91,7 @@ class PlayerList: .filter(not_(Player.status == 0)) .all() ) - guests = generate_guests(self.guest_count) - return active_players + guests - - def get_guests(self): - return { - level: _textualize_guest(level, self.guest_count[level]) - for level in self.guest_count - } + return active_players def increment_game_count(self, player_ids: list[int]): players = self.session.query(Player).filter(Player.id.in_(player_ids)) -- cgit v1.3.1