From 6bfe20b9a9f81e7c23c7e461d7c7bf823ca6d023 Mon Sep 17 00:00:00 2001 From: Chris Dodge Date: Tue, 20 Jan 2015 20:13:59 -0500 Subject: [PATCH] When changing quantities, be sure to return the new CyberSource submit form html. Also, to ensure that any browser content is fully refreshed when clicking the back button, force a page refresh to reset client state --- lms/djangoapps/shoppingcart/views.py | 14 +++++++++- lms/templates/shoppingcart/shopping_cart.html | 27 +++++++++++++++++-- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/lms/djangoapps/shoppingcart/views.py b/lms/djangoapps/shoppingcart/views.py index f717b182cd..3807befa3b 100644 --- a/lms/djangoapps/shoppingcart/views.py +++ b/lms/djangoapps/shoppingcart/views.py @@ -138,7 +138,19 @@ def update_user_cart(request): old_to_new_id_map = item.order.update_order_type() total_cost = item.order.total_cost - return JsonResponse({"total_cost": total_cost, "oldToNewIdMap": old_to_new_id_map}, 200) + callback_url = request.build_absolute_uri( + reverse("shoppingcart.views.postpay_callback") + ) + cart = Order.get_cart_for_user(request.user) + form_html = render_purchase_form_html(cart, callback_url=callback_url) + + return JsonResponse( + { + "total_cost": total_cost, + "oldToNewIdMap": old_to_new_id_map, + "form_html": form_html, + } + ) return HttpResponseBadRequest('Order item not found in request.') diff --git a/lms/templates/shoppingcart/shopping_cart.html b/lms/templates/shoppingcart/shopping_cart.html index 0fb52a306d..309203662b 100644 --- a/lms/templates/shoppingcart/shopping_cart.html +++ b/lms/templates/shoppingcart/shopping_cart.html @@ -9,6 +9,7 @@ from django.utils.translation import ugettext as _ %> + <%block name="custom_content">
@@ -108,7 +109,9 @@ from django.utils.translation import ugettext as _

% endif - +
+ +