Commit ab53bad8 by chrisndodge

Merge pull request #6704 from edx/cdodge/fix-shoppingcart-back-button

When changing quantities, be sure to return the new CyberSource submit f...
parents 065a7f34 7faf5cc0
...@@ -140,7 +140,19 @@ def update_user_cart(request): ...@@ -140,7 +140,19 @@ def update_user_cart(request):
old_to_new_id_map = item.order.update_order_type() old_to_new_id_map = item.order.update_order_type()
total_cost = item.order.total_cost 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.') return HttpResponseBadRequest('Order item not found in request.')
......
...@@ -9,6 +9,7 @@ from django.utils.translation import ugettext as _ ...@@ -9,6 +9,7 @@ from django.utils.translation import ugettext as _
%> %>
<%block name="custom_content"> <%block name="custom_content">
<div class="container"> <div class="container">
...@@ -108,7 +109,9 @@ from django.utils.translation import ugettext as _ ...@@ -108,7 +109,9 @@ from django.utils.translation import ugettext as _
</p> </p>
</div> </div>
<div name="payment" class="hidden"> <div name="payment" class="hidden">
${form_html} <div id="processor_form">
${form_html}
</div>
<p> <p>
${_('After this purchase is complete,')}<br/><b>${order.user.username}</b> ${_('After this purchase is complete,')}<br/><b>${order.user.username}</b>
${_('will be enrolled in this course.')} ${_('will be enrolled in this course.')}
...@@ -141,14 +144,32 @@ from django.utils.translation import ugettext as _ ...@@ -141,14 +144,32 @@ from django.utils.translation import ugettext as _
<a href="${marketing_link('COURSES')}" class="blue">${_('View Courses')}</a> <a href="${marketing_link('COURSES')}" class="blue">${_('View Courses')}</a>
</div> </div>
% endif % endif
</div> </div>
<form id='refresh_tracker'>
<input id="reloadValue" type="hidden" name="reloadValue" value="" />
</form>
</%block> </%block>
<script> <script>
$(function() { $(function() {
var isSpinnerBtnEnabled = true; var isSpinnerBtnEnabled = true;
var prevQty = 0; var prevQty = 0;
// This snipnet of code is to detect when and
// end-user has clicked the back button to the
// page. We want to force refresh to make
// sure there is no cached data happening
var d = new Date();
d = d.getTime();
if (jQuery('#reloadValue').val().length == 0)
{
jQuery('#reloadValue').val(d);
} else
{
jQuery('body').hide();
jQuery('#reloadValue').val('');
location.reload(true);
}
$('a.btn-remove').click(function(event) { $('a.btn-remove').click(function(event) {
event.preventDefault(); event.preventDefault();
var post_url = "${reverse('shoppingcart.views.remove_item')}"; var post_url = "${reverse('shoppingcart.views.remove_item')}";
...@@ -317,6 +338,7 @@ from django.utils.translation import ugettext as _ ...@@ -317,6 +338,7 @@ from django.utils.translation import ugettext as _
var prevTotal = data['total_cost']; var prevTotal = data['total_cost'];
$('html').css({'cursor':'default'}); $('html').css({'cursor':'default'});
$(".button").css({'cursor':'default'}); $(".button").css({'cursor':'default'});
$("#processor_form").html(data['form_html']);
if(typeChanged){ if(typeChanged){
var submit_button = $('.col-2.relative').find("input[type='submit']") var submit_button = $('.col-2.relative').find("input[type='submit']")
submit_button.removeAttr('disabled'); submit_button.removeAttr('disabled');
...@@ -410,4 +432,5 @@ from django.utils.translation import ugettext as _ ...@@ -410,4 +432,5 @@ from django.utils.translation import ugettext as _
}); });
}); });
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment