Anpassungen für das Hosting bei Djangoeurope und damit verbundenen Versionen Django 1.8 und Python 2.7

This commit is contained in:
Christian Berg
2015-08-05 18:55:48 +02:00
committed by Christian Berg
parent cb4b15b3c6
commit 37d3cb78c1
1355 changed files with 7289 additions and 6858 deletions

View 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