Catch an KyuDanRanking.DoesNotExist exception if the user has never played a game of mahjongg by now.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user