From 860453a8d01c7039ad3e03c770eefe94aa445704 Mon Sep 17 00:00:00 2001 From: James Turk Date: Sun, 27 May 2012 02:38:37 -0400 Subject: [PATCH] hopefully better events view --- fowl/game/templates/events.html | 19 ++++++++++--------- fowl/game/views.py | 18 +++++++++++++++--- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/fowl/game/templates/events.html b/fowl/game/templates/events.html index 7011687..078ff2d 100644 --- a/fowl/game/templates/events.html +++ b/fowl/game/templates/events.html @@ -15,18 +15,20 @@ match details:

-{% regroup points by match.event as event_list %} -{% for event in event_list %} +{% for event in events.values %}
-
+
@@ -36,13 +38,12 @@ match details:

- {% regroup event.list by match as match_list %} - {% for match in match_list %} + {% for match, tp_list in event.match_list.items %} - +
{{match.grouper}}{{match}}
    - {% for tp in match.list %} + {% for tp in tp_list %} {% if tp.points %}
  • {{tp.team}} received {{tp.points}} point{{tp.points|pluralize}} for {{tp.star}} diff --git a/fowl/game/views.py b/fowl/game/views.py index 5989984..e58068f 100644 --- a/fowl/game/views.py +++ b/fowl/game/views.py @@ -1,12 +1,24 @@ +from collections import defaultdict from django.shortcuts import render from fowl.game.models import TeamPoints + def events(request): + events = {} points = TeamPoints.objects.filter().order_by('match', 'team').select_related() - totals = TeamPoints.objects.values('match__event', - 'team__name').annotate(points=Sum('points')) - return render(request, "events.html", {'points': points}) + 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 + return render(request, "events.html", {'events': events}) + def stables(request): return render(request, "stables.html")