Stylesheets werden nur mit Less erzeugt. Damit können sie gleich
optimiert werden. jQuery wurde entfernt. Übersetzungen wurden korrigiert. Neue sync.sh Datei, welche änderungen mit rsync auf den Server spielt und das neuladen erzwingt.
This commit is contained in:
121
maistar_ranking/views.py
Normal file
121
maistar_ranking/views.py
Normal file
@@ -0,0 +1,121 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
|
||||
from datetime import date
|
||||
|
||||
from django.contrib import auth
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.utils.translation import gettext as _
|
||||
from django.views import generic
|
||||
|
||||
from events.models import Event
|
||||
from events.views import EventDetailMixin
|
||||
from membership.models import Membership
|
||||
from utils.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
||||
from mahjong_ranking.views import PlayerScore
|
||||
from . import forms, models
|
||||
|
||||
|
||||
class GameForm(EventDetailMixin, PermissionRequiredMixin, generic.UpdateView):
|
||||
model = models.Game
|
||||
permission_required = 'maistar_ranking.add_game'
|
||||
form_class = forms.GameForm
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
if 'game' in self.kwargs:
|
||||
game = get_object_or_404(models.Game, pk=self.kwargs['game'])
|
||||
elif 'event' in self.kwargs:
|
||||
self.event = get_object_or_404(Event, pk=self.kwargs['event'])
|
||||
game = models.Game(event=self.event)
|
||||
return game
|
||||
|
||||
|
||||
class DeleteGame(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.
|
||||
"""
|
||||
model = models.Game
|
||||
permission_required = 'maistar_ranking.delete_game'
|
||||
pk_url_kwarg = 'hanchan'
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse(
|
||||
'maistar_ranking-game-list',
|
||||
kwargs={'event': self.object.event.pk}
|
||||
)
|
||||
|
||||
|
||||
class UpdateGame(EventDetailMixin, PermissionRequiredMixin, generic.UpdateView):
|
||||
"""
|
||||
Ein Formular um eine neues Spiel anzulegen, bzw. eine bestehendes zu
|
||||
bearbeiten.
|
||||
"""
|
||||
model = models.Game
|
||||
permission_required = 'maistar_ranking.update_game'
|
||||
|
||||
def get_object(self, queryset=None): # @UnusedVariable
|
||||
game = models.Game.objects.get(id=self.kwargs['game'])
|
||||
self.event = game.event
|
||||
return game
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = generic.UpdateView.get_context_data(self, **kwargs)
|
||||
context['event'] = self.event
|
||||
return context
|
||||
|
||||
|
||||
class ListGames(EventDetailMixin, generic.ListView):
|
||||
"""
|
||||
Auflistung aller Spiele welche während einer Veranstaltung gespielt wurden.
|
||||
"""
|
||||
model = models.Game
|
||||
|
||||
def get_queryset(self):
|
||||
self.event = get_object_or_404(models.Event, pk=self.kwargs['event'])
|
||||
return models.Game.objects.filter(event=self.event).select_related()
|
||||
|
||||
|
||||
class ListPlayerGames(PlayerScore):
|
||||
template_name = 'maistar_ranking/player_game_list.html'
|
||||
paginate_by = 25
|
||||
context_object_name = 'game_list'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(ListPlayerGames, self).get_context_data()
|
||||
context['membership'] = Membership.objects.get(user=self.user)
|
||||
context['season_list'] = models.Ranking.objects.filter(user=self.user).values_list('season', flat=True)
|
||||
context['season'] = self.season
|
||||
return context
|
||||
|
||||
def get_queryset(self, **kwargs):
|
||||
self.user = get_object_or_404(auth.get_user_model(),
|
||||
username=self.kwargs.get('username'))
|
||||
self.season = self.kwargs.get('season', date.today().year)
|
||||
return models.Game.objects.player_games(player=self.user,
|
||||
season=self.season)
|
||||
|
||||
|
||||
class ListRankings(generic.ListView):
|
||||
model = models.Ranking
|
||||
paginate_by = 50
|
||||
season = None
|
||||
is_archive = False
|
||||
|
||||
def get_queryset(self):
|
||||
self.season = int(self.kwargs.get('season', date.today().year))
|
||||
queryset = models.Ranking.objects.filter(
|
||||
season=self.season,
|
||||
placement__isnull=False
|
||||
)
|
||||
queryset = queryset.select_related()
|
||||
return queryset
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = generic.ListView.get_context_data(self, **kwargs)
|
||||
context['is_archive'] = self.is_archive
|
||||
context['season'] = self.season
|
||||
context['season_list'] = models.Ranking.objects.get_seasons()
|
||||
context['latest_games'] = models.Game.objects.filter(confirmed=True)[:3]
|
||||
context['latest_events'] = Event.objects.archive()[:3]
|
||||
return context
|
||||
Reference in New Issue
Block a user