summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Kersten <jke@odoo.com>2017-10-20 16:18:31 +0200
committerJeremy Kersten <jke@odoo.com>2017-10-20 16:27:41 +0200
commite5ff47df58e2eb2db65cf29489774a84d3fca6df (patch)
treeb185dcd9e5a548ba0d8bb4fa61a19d00bb48cc64
parentf6c89de81eb105eb916d5a5cdca1f44bddd65c36 (diff)
[FIX] website_sale_wishlist: manage warning in return value
Similar to https://github.com/odoo/odoo/blob/11.0/addons/website_sale/static/src/js/website_sale.js#L173 It is particulary interesing when website_sale_stock return warning. Until now, the end user had no info about the failed add_to_cart
-rw-r--r--addons/website_sale/controllers/main.py3
-rw-r--r--addons/website_sale_stock/models/sale_order.py3
-rw-r--r--addons/website_sale_wishlist/static/src/js/website_sale_wishlist.js9
3 files changed, 12 insertions, 3 deletions
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('<div class="mt16 alert alert-danger alert-dismissable" role="alert" id="data_warning"></div>');
+ }
+ var cart_alert = $('.wishlist-section').parent().find('#data_warning');
+ cart_alert.html('<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> ' + resp.warning);
+ }
+ $('.my_cart_quantity').html(resp.cart_quantity || '<i class="fa fa-warning" /> ');
});
return add_to_cart;
},