diff options
Diffstat (limited to 'postgresqleu/confreg/views.py')
-rw-r--r-- | postgresqleu/confreg/views.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/postgresqleu/confreg/views.py b/postgresqleu/confreg/views.py index 373ce318..47b2fa42 100644 --- a/postgresqleu/confreg/views.py +++ b/postgresqleu/confreg/views.py @@ -653,6 +653,30 @@ def multireg_bulkview(request, confname, bulkid): @login_required @transaction.atomic +def multireg_bulk_cancel(request, confname, bulkid): + conference = get_object_or_404(Conference, urlname=confname) + bp = get_object_or_404(BulkPayment, conference=conference, pk=bulkid, user=request.user) + + if not bp.invoice: + return HttpResponseRedirect("../") + if bp.invoice.paidat or bp.invoice.deleted: + return HttpResponseRedirect("../") + + if request.method == 'POST': + if request.POST['submit'].find('Cancel invoice') >= 0: + manager = InvoiceManager() + manager.cancel_invoice(bp.invoice, "User {0} requested cancellation".format(request.user)) + return HttpResponseRedirect('../../') + else: + return HttpResponseRedirect('../') + + return render_conference_response(request, conference, 'reg', 'confreg/regmulti_cancel.html', { + 'bp': bp, + }) + + +@login_required +@transaction.atomic def multireg_attach(request, token): reg = get_object_or_404(ConferenceRegistration, regtoken=token) if reg.attendee: |