Fehler bei Vergabe von Bonuspunkte korrigiert.
Kommentare für Bonuspunkte werden jetzt als Kommentar beim Spieler hinterlassen, nicht als Kommentar in der Hanchan. FIXED: 3_in_a_row counter wurde nicht zurückgesetzt wenn Bonuspunkte vergeben wurden. FIXED: Durchschnittliche Platzierung während eines Events wurde nur als Ganzzahl berechnet. Wird nun als Fießkomma berechnet und gesichert.
This commit is contained in:
@@ -6,7 +6,7 @@ from django.core.urlresolvers import reverse
|
||||
import django.forms
|
||||
import django.http
|
||||
from django.contrib.messages.views import SuccessMessageMixin
|
||||
from django.utils.translation import gettext as _
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.views import generic
|
||||
|
||||
from events.models import Event
|
||||
@@ -21,14 +21,15 @@ kyu_dan_order = {
|
||||
'-hanchan_count': ('-hanchan_count',),
|
||||
'+rank': ('-kyu', 'dan'),
|
||||
'-rank': ('-dan', 'kyu'),
|
||||
'+score': ('dan_points', 'kyu_points'),
|
||||
'-score': ('-dan_points', '-kyu_points'),
|
||||
'+score': ('dan_points', '-dan', 'kyu_points'),
|
||||
'-score': ('-dan_points', 'dan', '-kyu_points'),
|
||||
'+username': ('user__username',),
|
||||
'-username': ('-user__username',)
|
||||
}
|
||||
|
||||
|
||||
class DeleteHanchan(EventDetailMixin, PermissionRequiredMixin, generic.DeleteView):
|
||||
class DeleteHanchan(EventDetailMixin, PermissionRequiredMixin,
|
||||
generic.DeleteView):
|
||||
"""
|
||||
Fragt zuerst nach, ob die Hanchan wirklich gelöscht werden soll.
|
||||
Wir die Frage mit "Ja" beantwortet, wird die die Hanchan gelöscht.
|
||||
@@ -43,7 +44,8 @@ class DeleteHanchan(EventDetailMixin, PermissionRequiredMixin, generic.DeleteVie
|
||||
kwargs={'event': self.object.event.pk})
|
||||
|
||||
|
||||
class HanchanForm(SuccessMessageMixin, EventDetailMixin, PermissionRequiredMixin, generic.UpdateView):
|
||||
class HanchanForm(SuccessMessageMixin, EventDetailMixin,
|
||||
PermissionRequiredMixin, generic.UpdateView):
|
||||
"""
|
||||
Ein Formular um neue Hanchans anzulegen, bzw. eine bestehende zu
|
||||
bearbeitsen
|
||||
@@ -68,7 +70,8 @@ class HanchanForm(SuccessMessageMixin, EventDetailMixin, PermissionRequiredMixin
|
||||
return forms.HanchanForm
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
if self.kwargs.get('hanchan') and self.request.user.has_perm('mahjong_ranking.change_hanchan'):
|
||||
if self.kwargs.get('hanchan') and self.request.user.has_perm(
|
||||
'mahjong_ranking.change_hanchan'):
|
||||
hanchan = models.Hanchan.objects.get(id=self.kwargs['hanchan'])
|
||||
self.event = hanchan.event
|
||||
elif self.kwargs.get('event'):
|
||||
@@ -93,7 +96,9 @@ class HanchanForm(SuccessMessageMixin, EventDetailMixin, PermissionRequiredMixin
|
||||
if self.kwargs.get('hanchan'):
|
||||
return _('%s has been updated successfully.') % self.object
|
||||
else:
|
||||
return _('%s has been added successfully. You can now add a new one.') % self.object
|
||||
return _(
|
||||
'%s has been added successfully. You can now add a new '
|
||||
'one.') % self.object
|
||||
|
||||
|
||||
class EventHanchanList(EventDetailMixin, generic.ListView):
|
||||
@@ -129,7 +134,26 @@ class EventRankingList(EventDetailMixin, generic.ListView):
|
||||
raise django.http.Http404(_('Event does not exist'))
|
||||
|
||||
|
||||
class KyuDanRankingList(generic.ListView):
|
||||
class MahjongMixin(object):
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(MahjongMixin, self).get_context_data(**kwargs)
|
||||
try:
|
||||
context['season'] = self.season
|
||||
context['season_start'] = date(year=self.season, month=1, day=1)
|
||||
context['season_end'] = date(year=self.season, month=12, day=31)
|
||||
context['season_list'] = models.SeasonRanking.objects.season_list
|
||||
except AttributeError:
|
||||
pass
|
||||
context[
|
||||
'latest_hanchan_list'] = \
|
||||
models.Hanchan.objects.confirmed_hanchans()[
|
||||
:3]
|
||||
context['latest_event_list'] = Event.objects.latest_events(num=3)
|
||||
return context
|
||||
|
||||
|
||||
class KyuDanRankingList(MahjongMixin, generic.ListView):
|
||||
"""
|
||||
Anzeige aller Spiele mit ihrem Kyu bzw Dan Grad.
|
||||
"""
|
||||
@@ -145,30 +169,22 @@ class KyuDanRankingList(generic.ListView):
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = models.KyuDanRanking.objects.all().order_by(*self.order_by)
|
||||
return queryset.select_related('user__membership')
|
||||
return queryset.select_related()
|
||||
|
||||
|
||||
class SeasonRankingList(generic.ListView):
|
||||
class SeasonRankingList(MahjongMixin, generic.ListView):
|
||||
model = models.SeasonRanking
|
||||
paginate_by = 25
|
||||
season = None
|
||||
|
||||
def get_queryset(self):
|
||||
self.season = int(self.kwargs.get('season', date.today().year))
|
||||
queryset = self.model.objects.filter(season=self.season,
|
||||
placement__isnull=False)
|
||||
queryset = self.model.objects.filter(
|
||||
season=self.season,
|
||||
placement__isnull=False
|
||||
)
|
||||
return queryset.select_related()
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(SeasonRankingList, self).get_context_data(**kwargs)
|
||||
context['season'] = self.season
|
||||
context['season_start'] = date(year=self.season, month=1, day=1)
|
||||
context['season_end'] = date(year=self.season, month=12, day=31)
|
||||
context['season_list'] = models.SeasonRanking.objects.season_list
|
||||
context['latest_hanchan_list'] = models.Hanchan.objects.confirmed_hanchans()[:3]
|
||||
context['latest_event_list'] = Event.objects.archive()[:3]
|
||||
return context
|
||||
|
||||
|
||||
class PlayerScore(LoginRequiredMixin, generic.ListView):
|
||||
paginate_by = 25
|
||||
@@ -176,9 +192,12 @@ class PlayerScore(LoginRequiredMixin, generic.ListView):
|
||||
def get(self, request, *args, **kwargs):
|
||||
user_model = auth.get_user_model()
|
||||
try:
|
||||
self.user = user_model.objects.get(username=self.kwargs.get('username'))
|
||||
self.user = user_model.objects.get(
|
||||
username=self.kwargs.get('username'))
|
||||
except user_model.DoesNotExist:
|
||||
raise django.http.Http404(_("No user found matching the name {}").format(self.kwargs.get('username')))
|
||||
raise django.http.Http404(
|
||||
_("No user found matching the name {}").format(
|
||||
self.kwargs.get('username')))
|
||||
return super(PlayerScore, self).get(request, *args, **kwargs)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
@@ -235,6 +254,7 @@ class PlayerLadderScore(PlayerScore):
|
||||
self.season = int(self.request.GET.get('season'))
|
||||
except:
|
||||
self.season = date.today().year
|
||||
hanchan_list = models.Hanchan.objects.season_hanchans(user=self.user, season=self.season)
|
||||
hanchan_list = models.Hanchan.objects.season_hanchans(
|
||||
user=self.user, season=self.season)
|
||||
print hanchan_list
|
||||
return hanchan_list
|
||||
|
||||
Reference in New Issue
Block a user