diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index e23da2bcf89..fff2d0e4f03 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -400,9 +400,10 @@ class WebsiteSale(http.Controller): return {} value = order._cart_update(product_id=product_id, line_id=line_id, add_qty=add_qty, set_qty=set_qty) + if not order.cart_quantity: request.website.sale_reset() - return {} + return value order = request.website.sale_get_order() value['cart_quantity'] = order.cart_quantity diff --git a/addons/website_sale_stock/models/sale_order.py b/addons/website_sale_stock/models/sale_order.py index ecc653f98d1..4ac8a67a871 100644 --- a/addons/website_sale_stock/models/sale_order.py +++ b/addons/website_sale_stock/models/sale_order.py @@ -25,9 +25,10 @@ class SaleOrder(models.Model): # Make sure line still exists, it may have been deleted in super()_cartupdate because qty can be <= 0 if line.exists() and new_val['quantity']: line.warning_stock = _('You ask for %s products but only %s is available') % (cart_qty, new_val['quantity']) + values['warning'] = line.warning_stock else: self.warning_stock = _("Some products became unavailable and your cart has been updated. We're sorry for the inconvenience.") - + values['warning'] = self.warning_stock return values @api.multi diff --git a/addons/website_sale_wishlist/static/src/js/website_sale_wishlist.js b/addons/website_sale_wishlist/static/src/js/website_sale_wishlist.js index c1e9a001034..8f0c3ec0359 100644 --- a/addons/website_sale_wishlist/static/src/js/website_sale_wishlist.js +++ b/addons/website_sale_wishlist/static/src/js/website_sale_wishlist.js @@ -134,7 +134,14 @@ var ProductWishlist = Widget.extend({ }); add_to_cart.then(function(resp) { - $('.my_cart_quantity').text(resp.cart_quantity || '* 1'); + if (resp.warning) { + if (! $('#data_warning').length) { + $('.wishlist-section').prepend('
'); + } + var cart_alert = $('.wishlist-section').parent().find('#data_warning'); + cart_alert.html(' ' + resp.warning); + } + $('.my_cart_quantity').html(resp.cart_quantity || ' '); }); return add_to_cart; },