diff --git a/src/mahjong_ranking/views.py b/src/mahjong_ranking/views.py index 4be1877..14ed205 100644 --- a/src/mahjong_ranking/views.py +++ b/src/mahjong_ranking/views.py @@ -31,6 +31,18 @@ KYU_DAN_ORDER = { # map sort URL args to Django ORM order_by args } +def get_kyu_dan_ranking(user=None): + """ + get the KyuDanRanking from the Database, or return a blank one + :param user: user model + :return: KyuDanRanking object + """ + try: + return models.KyuDanRanking.objects.get(user=user) + except models.KyuDanRanking.DoesNotExist: + return models.KyuDanRanking(user=user) + + class DeleteHanchan(EventDetailMixin, PermissionRequiredMixin, generic.DeleteView): """Deletes a Hanchan if confimration has been answerd with 'yes'.""" @@ -206,7 +218,6 @@ class PlayerScore(LoginRequiredMixin, generic.ListView): raise django.http.Http404( _("No user found matching the name {}").format( self.kwargs.get('username'))) - print(request.GET) if request.GET.get('download') == 'xlsx': return self.get_xlsx(request, *args, **kwargs) return super(PlayerScore, self).get(request, *args, **kwargs) @@ -248,7 +259,7 @@ class PlayerDanScore(PlayerScore): template_name = 'mahjong_ranking/player_dan_score.html' def get_queryset(self): - self.kyu_dan_ranking = models.KyuDanRanking.objects.get(user=self.user) + self.kyu_dan_ranking = get_kyu_dan_ranking(user=self.user) return models.Hanchan.objects.dan_hanchans( user=self.user, since=self.kyu_dan_ranking.legacy_date) @@ -304,7 +315,7 @@ class PlayerKyuScore(PlayerScore): template_name = 'mahjong_ranking/player_kyu_score.html' def get_queryset(self): - self.kyu_dan_ranking = models.KyuDanRanking.objects.get(user=self.user) + self.kyu_dan_ranking = get_kyu_dan_ranking(user=self.user) return models.Hanchan.objects.kyu_hanchans( user=self.user, since=self.kyu_dan_ranking.legacy_date)