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,
|
class DeleteHanchan(EventDetailMixin, PermissionRequiredMixin,
|
||||||
generic.DeleteView):
|
generic.DeleteView):
|
||||||
"""Deletes a Hanchan if confimration has been answerd with 'yes'."""
|
"""Deletes a Hanchan if confimration has been answerd with 'yes'."""
|
||||||
@@ -206,7 +218,6 @@ class PlayerScore(LoginRequiredMixin, generic.ListView):
|
|||||||
raise django.http.Http404(
|
raise django.http.Http404(
|
||||||
_("No user found matching the name {}").format(
|
_("No user found matching the name {}").format(
|
||||||
self.kwargs.get('username')))
|
self.kwargs.get('username')))
|
||||||
print(request.GET)
|
|
||||||
if request.GET.get('download') == 'xlsx':
|
if request.GET.get('download') == 'xlsx':
|
||||||
return self.get_xlsx(request, *args, **kwargs)
|
return self.get_xlsx(request, *args, **kwargs)
|
||||||
return super(PlayerScore, self).get(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'
|
template_name = 'mahjong_ranking/player_dan_score.html'
|
||||||
|
|
||||||
def get_queryset(self):
|
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(
|
return models.Hanchan.objects.dan_hanchans(
|
||||||
user=self.user,
|
user=self.user,
|
||||||
since=self.kyu_dan_ranking.legacy_date)
|
since=self.kyu_dan_ranking.legacy_date)
|
||||||
@@ -304,7 +315,7 @@ class PlayerKyuScore(PlayerScore):
|
|||||||
template_name = 'mahjong_ranking/player_kyu_score.html'
|
template_name = 'mahjong_ranking/player_kyu_score.html'
|
||||||
|
|
||||||
def get_queryset(self):
|
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(
|
return models.Hanchan.objects.kyu_hanchans(
|
||||||
user=self.user,
|
user=self.user,
|
||||||
since=self.kyu_dan_ranking.legacy_date)
|
since=self.kyu_dan_ranking.legacy_date)
|
||||||
|
|||||||
Reference in New Issue
Block a user