From 0340b6da20640b51386a45708b5e528ad00a4b74 Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Wed, 6 Apr 2016 14:34:16 +1000 Subject: [PATCH] =?UTF-8?q?Adds=20=E2=80=9Cfix=5Ferrors=E2=80=9D=20query?= =?UTF-8?q?=20to=20=E2=80=9Ccheckout=E2=80=9D,=20which=20allows=20users=20?= =?UTF-8?q?to=20have=20issues=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- registrasion/views.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/registrasion/views.py b/registrasion/views.py index 77c00bb3..3f9dbf4f 100644 --- a/registrasion/views.py +++ b/registrasion/views.py @@ -377,10 +377,30 @@ def checkout(request): invoice. ''' current_cart = CartController.for_user(request.user) - current_invoice = InvoiceController.for_cart(current_cart.cart) + + if "fix_errors" in request.GET and request.GET["fix_errors"] == "true": + current_cart.fix_simple_errors() + + try: + current_invoice = InvoiceController.for_cart(current_cart.cart) + except ValidationError as ve: + return checkout_errors(request, ve) return redirect("invoice", current_invoice.invoice.id) +def checkout_errors(request, errors): + + error_list = [] + for error in errors.error_list: + if isinstance(error, tuple): + error = error[1] + error_list.append(error) + + data = { + "error_list": error_list, + } + + return render(request, "registrasion/checkout_errors.html", data) @login_required def invoice(request, invoice_id):