From 7f5a60f13c9e8d4e439f69967366766f5baf09c6 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Tue, 5 Nov 2013 14:27:47 +0100 Subject: [PATCH] [FIX] website_sale: update total when the user change a product quantity bzr revid: chm@openerp.com-20131105132747-figm8j11d6ul1v0k --- addons/website_sale/controllers/main.py | 9 ++++++--- .../website_sale/static/src/js/website_sale.js | 10 +++++++++- addons/website_sale/views/website_sale.xml | 18 +++++++++++------- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 0ea8b149ca7..a6879191802 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -451,8 +451,7 @@ class Ecommerce(http.Controller): else: order_line_id = order_line_obj.create(request.cr, SUPERUSER_ID, values, context=request.context) order_obj.write(request.cr, SUPERUSER_ID, [order.id], {'order_line': [(4, order_line_id)]}, context=request.context) - - return [quantity, order.get_total_quantity()] + return quantity @website.route(['/shop/mycart/'], type='http', auth="public", multilang=True) def mycart(self, **post): @@ -492,7 +491,11 @@ class Ecommerce(http.Controller): @website.route(['/shop/add_cart_json/'], type='json', auth="public") def add_cart_json(self, product_id=None, order_line_id=None, remove=None): - return self.add_product_to_cart(product_id=product_id, order_line_id=order_line_id, number=(remove and -1 or 1)) + quantity = self.add_product_to_cart(product_id=product_id, order_line_id=order_line_id, number=(remove and -1 or 1)) + order = get_current_order() + return [quantity, order.get_total_quantity(), order.amount_total, request.website.render("website_sale.total", { + 'website_sale_order': order + }).strip()] @website.route(['/shop/set_cart_json/'], type='json', auth="public") def set_cart_json(self, path=None, product_id=None, order_line_id=None, set_number=0, json=None): diff --git a/addons/website_sale/static/src/js/website_sale.js b/addons/website_sale/static/src/js/website_sale.js index 5f31d52fccb..d9ba79a1238 100644 --- a/addons/website_sale/static/src/js/website_sale.js +++ b/addons/website_sale/static/src/js/website_sale.js @@ -43,13 +43,21 @@ $(document).ready(function () { var $link = $(ev.currentTarget); var product = $link.attr("href").match(/product_id=([0-9]+)/); var product_id = product ? +product[1] : 0; - openerp.jsonRpc("/shop/add_cart_json/", 'call', {'product_id': product_id, 'order_line_id': $link.data('id'), 'remove': $link.is('[href*="/remove_cart/"]')}) + if (!product) { + var line = $link.attr("href").match(/order_line_id=([0-9]+)/); + order_line_id = line ? +line[1] : 0; + } + openerp.jsonRpc("/shop/add_cart_json/", 'call', { + 'product_id': product_id, + 'order_line_id': order_line_id, + 'remove': $link.is('[href*="remove"]')}) .then(function (data) { if (!data[0]) { location.reload(); } set_my_cart_quantity(data[1]); $link.parents(".input-group:first").find(".js_quantity").val(data[0]); + $('[data-oe-model="sale.order"][data-oe-field="amount_total"]').replaceWith(data[3]); }); return false; }); diff --git a/addons/website_sale/views/website_sale.xml b/addons/website_sale/views/website_sale.xml index ea794b758ff..3fbf67744fe 100644 --- a/addons/website_sale/views/website_sale.xml +++ b/addons/website_sale/views/website_sale.xml @@ -420,14 +420,14 @@
- + - + @@ -445,11 +445,8 @@

Total:

-

-

+ +

@@ -878,5 +875,12 @@ + +