fowl/fowl/game/views.py
2012-05-28 03:21:29 -04:00

48 lines
1.8 KiB
Python

from collections import defaultdict
from itertools import izip_longest
from django.shortcuts import render, get_object_or_404
from fowl.game.models import Team, TeamPoints, Star
def events(request, league_id):
events = {}
points = TeamPoints.objects.filter(team__league_id=league_id).order_by(
'match', 'team').select_related()
for tp in points:
event_id = tp.match.event_id
if event_id not in events:
events[event_id] = tp.match.event
events[event_id].scores = {}
events[event_id].match_list = {}
events[event_id].match_list.setdefault(tp.match, []
).append(tp)
events[event_id].scores.setdefault(tp.team.name, 0)
events[event_id].scores[tp.team.name] += tp.points
events = sorted(events.values(), key=lambda x: x.date, reverse=True)
return render(request, "events.html", {'events': events, 'view': 'events'})
def edit_event(request, event_id=None):
if event_id:
event = get_object_or_404(Event, pk=event_id)
else:
event = None
if request.method == 'GET':
return render(request, "edit_event.html", {"event": event})
def league(request, league_id):
context = {
'view': 'league',
'belts': ['ic', 'us', 'heavyweight', 'wwe']
}
teams = list(Team.objects.filter(league__id=league_id)
.prefetch_related('stars'))
context['teams'] = teams
context['star_sets'] = izip_longest(*(team.stars.all().order_by("division")
for team in teams))
return render(request, "stables.html", context)
def roster(request):
context = {
'stars': Star.objects.all()
}
return render(request, "roster.html", context)