From 4531e54e4a2bbf6b5990467d802c59ba82b9c1e7 Mon Sep 17 00:00:00 2001 From: Yarne Coppens Date: Wed, 12 Feb 2025 17:44:34 +0100 Subject: [PATCH] Created parameter for winrate_over_time to filter on specific boardgame --- src/main.py | 4 ++-- src/modules/statistic_creator.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main.py b/src/main.py index 74480e2..0fdef2c 100644 --- a/src/main.py +++ b/src/main.py @@ -251,8 +251,8 @@ def get_winrate(player_name: str | None = None, session: Session = Depends(get_s return statistic_to_return @app.get('/statistics/winrate_over_time', response_model=Union[statistic_classes.TimeLineStatistic, Dict[str,statistic_classes.TimeLineStatistic]]) -def get_winrate_over_time(player_name: str | None = None, day_step: int = 1, session: Session=Depends(get_session)): - statistic_to_return = statistic_creator.get_winrate_over_time(session, player_name, day_step) +def get_winrate_over_time(player_name: str | None = None, day_step: int = 1, boardgame_id: int | None = None, session: Session=Depends(get_session)): + statistic_to_return = statistic_creator.get_winrate_over_time(session, player_name, day_step, boardgame_id) return statistic_to_return diff --git a/src/modules/statistic_creator.py b/src/modules/statistic_creator.py index fb577ab..b981c2b 100644 --- a/src/modules/statistic_creator.py +++ b/src/modules/statistic_creator.py @@ -374,7 +374,7 @@ def get_winrate(session: Session, player_name: str | None = None): return statistic_to_return -def get_winrate_over_time(session: Session, player_name: str | None = None, day_step = 1) -> Dict[str,statistic_classes.TimeLineStatistic]: +def get_winrate_over_time(session: Session, player_name: str | None = None, day_step = 1, boardgame_id: int | None = None) -> Dict[str,statistic_classes.TimeLineStatistic]: statistic_name = 'Player winrate over time' @@ -409,6 +409,8 @@ def get_winrate_over_time(session: Session, player_name: str | None = None, day_ all_playplayers = [playplayer for playplayer in wanted_player.playplayers] all_playplayers.sort(key=lambda x: x.play.play_date) + all_playplayers = list(filter(lambda playplayer: boardgame_id == None or playplayer.play.boardgame.id == boardgame_id, all_playplayers)) + timeline_dict = {} for current_date in daterange(start_date, date.today(), day_step):