From 35a51091bf3eac051bb7540670864870def257b5 Mon Sep 17 00:00:00 2001 From: Christian Berg Date: Mon, 20 Nov 2017 07:33:54 +0100 Subject: [PATCH] added a since parameter to the hanchan queries to return only hanchans since the give date and time --- src/mahjong_ranking/managers.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/mahjong_ranking/managers.py b/src/mahjong_ranking/managers.py index 43b3a33..58cc202 100644 --- a/src/mahjong_ranking/managers.py +++ b/src/mahjong_ranking/managers.py @@ -13,7 +13,7 @@ class HanchanManager(models.Manager): """ use_for_related_fields = True - def confirmed_hanchans(self, user=None, until=None, **filter_args): + def confirmed_hanchans(self, user=None, since=None, until=None, **filter_args): """ Return all valid and confirmed Hanchans. :param user: Only return Hanchans where this user participated. @@ -24,11 +24,13 @@ class HanchanManager(models.Manager): return self.user_hanchans(user, confirmed=True, until=until, **filter_args) hanchans = self.filter(confirmed=True, **filter_args) + if since: + hanchans = hanchans.filter(start__gt=since) if until: hanchans = hanchans.filter(start__lte=until) return hanchans - def dan_hanchans(self, user, **filter_args): + def dan_hanchans(self, user, since = None, **filter_args): """ Return all Hanchans where a specific user has participated and had gain dan points and make his gamestats availabale. @@ -42,11 +44,13 @@ class HanchanManager(models.Manager): models.Q(player3=user, player3_dan_points__isnull=False) | models.Q(player4=user, player4_dan_points__isnull=False) ).filter(confirmed=True, **filter_args) + if since: + queryset = queryset.filter(start__gt=since) queryset = queryset.select_related().order_by('-start') [hanchan.get_playerdata(user) for hanchan in queryset] return queryset - def kyu_hanchans(self, user, **filter_args): + def kyu_hanchans(self, user, since = None, **filter_args): """ Return all Hanchans where a specific user has participated and had gain kyū points and make his gamestats availabale. @@ -60,6 +64,8 @@ class HanchanManager(models.Manager): models.Q(player3=user, player3_kyu_points__isnull=False) | models.Q(player4=user, player4_kyu_points__isnull=False) ).filter(confirmed=True, **filter_args) + if since: + queryset = queryset.filter(start__gt=since) queryset = queryset.select_related().order_by('-start') [hanchan.get_playerdata(user) for hanchan in queryset] return queryset