Paginator der besser ins Design passt.
This commit is contained in:
@@ -11,6 +11,7 @@ from django.views import generic
|
||||
import xlwt
|
||||
|
||||
from events.models import Event
|
||||
from events.views import EventDetailMixin
|
||||
from . import forms, models
|
||||
from membership.models import Membership
|
||||
from utils.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
||||
@@ -30,7 +31,7 @@ kyu_dan_order = {
|
||||
}
|
||||
|
||||
|
||||
class DeleteHanchan(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.
|
||||
@@ -42,10 +43,10 @@ class DeleteHanchan(PermissionRequiredMixin, generic.DeleteView):
|
||||
|
||||
def get_success_url(self):
|
||||
return reverse('event-hanchan-list',
|
||||
kwargs={'event': self.object.event.pk})
|
||||
kwargs={'event': self.object.event.pk})
|
||||
|
||||
|
||||
class HanchanForm(PermissionRequiredMixin, generic.UpdateView):
|
||||
class HanchanForm(EventDetailMixin, PermissionRequiredMixin, generic.UpdateView):
|
||||
"""
|
||||
Ein Formular um eine neue Hanchan anzulegen, bzw. eine bestehende zu
|
||||
bearbeitsen
|
||||
@@ -130,7 +131,7 @@ class HanchanForm(PermissionRequiredMixin, generic.UpdateView):
|
||||
return self.form_invalid(form, formset)
|
||||
|
||||
|
||||
class EventHanchanList(generic.ListView):
|
||||
class EventHanchanList(EventDetailMixin, generic.ListView):
|
||||
"""
|
||||
Auflistung aller Hanchan die während der Veranstaltung gespielt wurden.
|
||||
"""
|
||||
@@ -146,13 +147,8 @@ class EventHanchanList(generic.ListView):
|
||||
except models.Event.DoesNotExist:
|
||||
raise django.http.Http404(_('Event does not exist'))
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = generic.ListView.get_context_data(self, **kwargs)
|
||||
context['event'] = self.event
|
||||
return context
|
||||
|
||||
|
||||
class EventRankingList(generic.ListView):
|
||||
class EventRankingList(EventDetailMixin, generic.ListView):
|
||||
"""
|
||||
Anzeige des Eventrankings, daß erstellt wurde falls der Termin als internes
|
||||
Turnier markiert wurde.
|
||||
@@ -168,11 +164,6 @@ class EventRankingList(generic.ListView):
|
||||
except models.Event.DoesNotExist:
|
||||
raise django.http.Http404(_('Event does not exist'))
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = generic.ListView.get_context_data(self, **kwargs)
|
||||
context['event'] = self.event
|
||||
return context
|
||||
|
||||
|
||||
class KyuDanRankingList(generic.ListView):
|
||||
"""
|
||||
@@ -183,7 +174,8 @@ class KyuDanRankingList(generic.ListView):
|
||||
paginate_by = 25
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
self.order_by = kyu_dan_order[kwargs.get('order_by', self.default_order)] # @IgnorePep8
|
||||
self.order_by = kyu_dan_order[
|
||||
kwargs.get('order_by', self.default_order)] # @IgnorePep8
|
||||
return generic.ListView.dispatch(self, request, *args, **kwargs)
|
||||
|
||||
def get_queryset(self):
|
||||
@@ -202,7 +194,8 @@ class LadderRankingList(generic.ListView):
|
||||
def get_queryset(self):
|
||||
try:
|
||||
if self.kwargs.get('season'):
|
||||
self.season = models.LadderSeason.objects.get(pk=self.kwargs['season'])
|
||||
self.season = models.LadderSeason.objects.get(
|
||||
pk=self.kwargs['season'])
|
||||
self.is_archive = True
|
||||
elif self.kwargs.get('is_archive'):
|
||||
self.season = models.LadderSeason.objects.order_by('-pk')[1]
|
||||
@@ -211,16 +204,18 @@ class LadderRankingList(generic.ListView):
|
||||
self.season = models.LadderSeason.objects.current()
|
||||
except models.LadderSeason.DoesNotExist:
|
||||
raise django.http.Http404(_('Season does not exist'))
|
||||
queryset = models.LadderRanking.objects.filter(season=self.season, placement__isnull=False).select_related()
|
||||
queryset = models.LadderRanking.objects.filter(season=self.season,
|
||||
placement__isnull=False).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_archive'] = models.LadderSeason.objects.all()
|
||||
context['latest_hanchan_list'] = models.Hanchan.objects.filter(valid=True)[:5]
|
||||
context['latest_event_list'] = Event.objects.archive()[:5]
|
||||
context['season_list'] = models.LadderSeason.objects.all()
|
||||
context['latest_hanchan_list'] = models.Hanchan.objects.filter(
|
||||
valid=True)[:3]
|
||||
context['latest_event_list'] = Event.objects.archive()[:3]
|
||||
return context
|
||||
|
||||
|
||||
@@ -238,11 +233,13 @@ class LadderRankingExcel(generic.View):
|
||||
response = django.http.HttpResponse(mimetype=u'application/msexcel')
|
||||
|
||||
filename = urllib.quote(self.filename.encode('utf-8'))
|
||||
response['Content-Disposition'] = "attachment; filename*=UTF-8''%s" % filename
|
||||
response[
|
||||
'Content-Disposition'] = "attachment; filename*=UTF-8''%s" % filename
|
||||
|
||||
field_names = [u"Login", u"Name", u"E-Mail", u"Telefon", u"Handy", u"Geburtstag",
|
||||
u"T-Shirt", u"Teams", u"Gr.", u"Kg", u"Notfall Adresse",
|
||||
u"Notfall Nummer", u"Notizen", ]
|
||||
field_names = [u"Login", u"Name", u"E-Mail", u"Telefon", u"Handy",
|
||||
u"Geburtstag",
|
||||
u"T-Shirt", u"Teams", u"Gr.", u"Kg", u"Notfall Adresse",
|
||||
u"Notfall Nummer", u"Notizen", ]
|
||||
|
||||
|
||||
# Erstelle ein Workbook (Das ist eine Excel Datei)
|
||||
@@ -253,7 +250,8 @@ class LadderRankingExcel(generic.View):
|
||||
sheet = workbook.add_sheet('Mitglieder', cell_overwrite_ok=False)
|
||||
sheet.set_panes_frozen(True)
|
||||
sheet.set_horz_split_pos(1) # in general, freeze after last heading row
|
||||
sheet.set_remove_splits(True) # if user does unfreeze, don't leave a split there
|
||||
sheet.set_remove_splits(
|
||||
True) # if user does unfreeze, don't leave a split there
|
||||
for column in range(0, len(field_names)):
|
||||
sheet.write(0, column, field_names[column], style=header)
|
||||
|
||||
@@ -267,13 +265,17 @@ class LadderRankingExcel(generic.View):
|
||||
profile = user.get_profile()
|
||||
self.set_col(sheet, current_row, 3, profile.telephone or None)
|
||||
self.set_col(sheet, current_row, 4, profile.mobilephone or None)
|
||||
self.set_col(sheet, current_row, 5, profile.birthday or None, style=self.date)
|
||||
self.set_col(sheet, current_row, 6, profile.shirt_size or None, style=self.center)
|
||||
self.set_col(sheet, current_row, 5, profile.birthday or None,
|
||||
style=self.date)
|
||||
self.set_col(sheet, current_row, 6, profile.shirt_size or None,
|
||||
style=self.center)
|
||||
self.set_col(sheet, current_row, 7, self.get_other_teams(user))
|
||||
self.set_col(sheet, current_row, 8, profile.height or None)
|
||||
self.set_col(sheet, current_row, 9, profile.weight or None)
|
||||
self.set_col(sheet, current_row, 10, profile.emergency_contact or None)
|
||||
self.set_col(sheet, current_row, 11, profile.emergency_phone or None)
|
||||
self.set_col(sheet, current_row, 10,
|
||||
profile.emergency_contact or None)
|
||||
self.set_col(sheet, current_row, 11,
|
||||
profile.emergency_phone or None)
|
||||
except Membership.DoesNotExist:
|
||||
pass
|
||||
current_row += 1
|
||||
@@ -290,17 +292,22 @@ class PlayerScore(LoginRequiredMixin, generic.ListView):
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
try:
|
||||
self.user = auth.get_user_model().objects.get(username=self.kwargs.get('username'))
|
||||
self.membership = Membership.objects.get_or_create(user=self.user)[0]
|
||||
self.user = auth.get_user_model().objects.get(
|
||||
username=self.kwargs.get('username'))
|
||||
self.membership = Membership.objects.get_or_create(user=self.user)[
|
||||
0]
|
||||
except auth.get_user_model().DoesNotExist:
|
||||
raise django.http.Http404(_("No user found matching the name %s") % self.kwargs.get('username'))
|
||||
raise django.http.Http404(
|
||||
_("No user found matching the name %s") % self.kwargs.get(
|
||||
'username'))
|
||||
return generic.ListView.get(self, request, *args, **kwargs)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = generic.ListView.get_context_data(self, **kwargs)
|
||||
context['membership'] = self.membership
|
||||
try:
|
||||
context['kyu_dan_ranking'] = models.KyuDanRanking.objects.get(user=self.user)
|
||||
context['kyu_dan_ranking'] = models.KyuDanRanking.objects.get(
|
||||
user=self.user)
|
||||
except models.KyuDanRanking.DoesNotExist:
|
||||
context['ranking'] = None
|
||||
try:
|
||||
@@ -312,7 +319,6 @@ class PlayerScore(LoginRequiredMixin, generic.ListView):
|
||||
return context
|
||||
|
||||
|
||||
|
||||
class PlayerDanScore(PlayerScore):
|
||||
template_name = 'mahjong_ranking/player_dan_score.html'
|
||||
|
||||
@@ -339,16 +345,20 @@ class PlayerLadderScore(PlayerScore):
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = PlayerScore.get_context_data(self, **kwargs)
|
||||
season_list = models.LadderRanking.objects.filter(user=self.user).select_related('user')
|
||||
season_list = models.LadderRanking.objects.filter(
|
||||
user=self.user).select_related('user')
|
||||
season_list = season_list.values_list('id', 'season__name')
|
||||
context['season'] = self.season
|
||||
context['seasons_select_form'] = forms.SeasonSelectForm(user=self.user)
|
||||
context['seasons_select_field'] = django.forms.ChoiceField(choices=season_list)
|
||||
context['seasons_select_field'] = django.forms.ChoiceField(
|
||||
choices=season_list)
|
||||
return context
|
||||
|
||||
def get_queryset(self, **kwargs):
|
||||
if self.request.GET.get('season'):
|
||||
self.season = models.LadderSeason.objects.get(pk=self.request.GET['season'])
|
||||
self.season = models.LadderSeason.objects.get(
|
||||
pk=self.request.GET['season'])
|
||||
else:
|
||||
self.season = models.LadderSeason.objects.current()
|
||||
return models.Player.objects.ladder_hanchans(user=self.user, season=self.season)
|
||||
return models.Player.objects.ladder_hanchans(user=self.user,
|
||||
season=self.season)
|
||||
|
||||
Reference in New Issue
Block a user