tickets: Don't use a dict of shows in the overview.
[matthijs/projects/dorestad-bookings.git] / tickets / views.py
index a6dff544363d6f6107337f56f3c69de29534ac92..5b7ab75e541abfad5009e2b170e57c0f7400e4bd 100644 (file)
@@ -7,7 +7,7 @@ from django.shortcuts import render_to_response
 from django.template import RequestContext
 from django.contrib.auth.decorators import permission_required
 
-from models import Booking, TICKET_PRICE
+from models import Booking, TICKET_PRICE, SHOW_CHOICES
 
 class BookingForm(django.forms.ModelForm):
     class Meta:
@@ -127,3 +127,18 @@ def payments(request):
         c['amount'] = sum([b.price for b in bookings])
 
     return render_to_response('tickets/payments.html', c, context_instance=RequestContext(request))
+
+@permission_required('tickets.change_booking')
+def bookings(request):
+    shows = []
+    for (show, show_desc) in SHOW_CHOICES:
+        bookings = Booking.objects.filter(show=show)
+        # shows is a list of (show_desc, infodict) tuples
+        shows.append((show_desc, {
+            'bookings' : bookings,
+            'tickets'  : sum([b.tickets for b in bookings]),
+            'payed'    : Booking.objects.filter(show=show, payment__isnull=False),
+        }))
+
+    c = { 'shows' : shows }
+    return render_to_response('tickets/bookings.html', c, context_instance=RequestContext(request))