X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=tickets%2Fviews.py;h=1764301de977e2ba7824748cb7a1ddc3cee9aa0f;hb=8f82b787420a65cb08b42b59dea1929c76b77be4;hp=a06086d593646c7ad7ccd7bf4cfbd4150abd49c3;hpb=8b312f4e892698148d6de355cb5176ad3983f06d;p=matthijs%2Fprojects%2Fdorestad-bookings.git diff --git a/tickets/views.py b/tickets/views.py index a06086d..1764301 100644 --- a/tickets/views.py +++ b/tickets/views.py @@ -5,8 +5,9 @@ import datetime import django from django.shortcuts import render_to_response from django.template import RequestContext +from django.contrib.auth.decorators import permission_required -from models import Booking +from models import Booking, TICKET_PRICE, SHOW_CHOICES class BookingForm(django.forms.ModelForm): class Meta: @@ -63,7 +64,7 @@ def book(request): confirm_booking(booking, 'tickets/booked.eml') return render_to_response('tickets/booked.html', {'booking' : booking}, context_instance=RequestContext(request)) - return render_to_response('tickets/bookingform.html', {'form' : f}, context_instance=RequestContext(request)) + return render_to_response('tickets/bookingform.html', {'form' : f, 'price' : TICKET_PRICE}, context_instance=RequestContext(request)) # These two forms are used for entering payment details. They aren't # very different, so it should really be possible to merge them (but @@ -84,6 +85,7 @@ class PaymentConfirmForm(django.forms.Form): # This field is used to distinguish these two forms confirm = django.forms.BooleanField(initial=True, widget=django.forms.HiddenInput) +@permission_required('tickets.change_booking') def payments(request): c = {} bookings = None @@ -109,6 +111,7 @@ def payments(request): for b in bookings: b.payment = datetime.datetime.now() b.save() + confirm_booking(b, 'tickets/payed.eml') # Don't show the form again f = None @@ -124,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' : sum([b.tickets for b in bookings if b.payment is not None]), + })) + + c = { 'shows' : shows } + return render_to_response('tickets/bookings.html', c, context_instance=RequestContext(request))