summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2017-11-30 10:55:32 +0100
committerChristophe Simonis <chs@odoo.com>2017-11-30 10:55:32 +0100
commit99f343c7b6a5696b74bbbcaaa3ecc3efb17b3f86 (patch)
tree25311971f6e286ae92ec2c538188df3e0824f21e /addons
parent2896193d45989a63fac024df7f7b2ba2ccb2c0f4 (diff)
parent82bde85030b58959bba8efddb13746e5dc3e4601 (diff)
[MERGE] forward port branch 9.0 up to 82bde85030b
Diffstat (limited to 'addons')
-rw-r--r--addons/point_of_sale/static/src/js/models.js2
-rw-r--r--addons/website_sale/controllers/main.py5
-rw-r--r--addons/website_sale/models/sale_order.py11
-rw-r--r--addons/website_sale/static/src/js/website_sale.js9
-rw-r--r--addons/website_sale_options/controllers/main.py4
5 files changed, 24 insertions, 7 deletions
diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js
index 19400b2fe93..c5cf1c77e5c 100644
--- a/addons/point_of_sale/static/src/js/models.js
+++ b/addons/point_of_sale/static/src/js/models.js
@@ -508,7 +508,7 @@ exports.PosModel = Backbone.Model.extend({
.then(function(){ load_model(index + 1); },
function(err){ loaded.reject(err); });
}catch(err){
- console.error(err.stack);
+ console.error(err.message, err.stack);
loaded.reject(err);
}
},function(err){
diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py
index ab5f0021931..81053c2ac82 100644
--- a/addons/website_sale/controllers/main.py
+++ b/addons/website_sale/controllers/main.py
@@ -369,8 +369,8 @@ class WebsiteSale(http.Controller):
def cart_update(self, product_id, add_qty=1, set_qty=0, **kw):
request.website.sale_get_order(force_create=1)._cart_update(
product_id=int(product_id),
- add_qty=float(add_qty),
- set_qty=float(set_qty),
+ add_qty=add_qty,
+ set_qty=set_qty,
attributes=self._filter_attributes(**kw),
)
return request.redirect("/shop/cart")
@@ -384,7 +384,6 @@ class WebsiteSale(http.Controller):
if order.state != 'draft':
request.website.sale_reset()
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()
diff --git a/addons/website_sale/models/sale_order.py b/addons/website_sale/models/sale_order.py
index ea8a1914e3d..83189c95c9b 100644
--- a/addons/website_sale/models/sale_order.py
+++ b/addons/website_sale/models/sale_order.py
@@ -113,6 +113,17 @@ class SaleOrder(models.Model):
""" Add or set product quantity, add_qty can be negative """
self.ensure_one()
SaleOrderLineSudo = self.env['sale.order.line'].sudo()
+
+ try:
+ if add_qty:
+ add_qty = float(add_qty)
+ except ValueError:
+ add_qty = 1
+ try:
+ if set_qty:
+ set_qty = float(set_qty)
+ except ValueError:
+ set_qty = 0
quantity = 0
order_line = False
if self.state != 'draft':
diff --git a/addons/website_sale/static/src/js/website_sale.js b/addons/website_sale/static/src/js/website_sale.js
index 25e6cabb0a0..57a6beecca0 100644
--- a/addons/website_sale/static/src/js/website_sale.js
+++ b/addons/website_sale/static/src/js/website_sale.js
@@ -133,6 +133,9 @@ odoo.define('website_sale.website_sale', function (require) {
return;
}
var value = parseInt($input.val() || 0, 10);
+ if (isNaN(value)) {
+ value = 1;
+ }
var $dom = $(this).closest('tr');
//var default_price = parseFloat($dom.find('.text-danger > span.oe_currency_value').text());
var $dom_optional = $dom.nextUntil(':not(.optional_product.info)');
@@ -151,7 +154,11 @@ odoo.define('website_sale.website_sale', function (require) {
'set_qty': value
}).then(function (data) {
$input.data('update_change', false);
- if (value !== parseInt($input.val() || 0, 10)) {
+ var check_value = parseInt($input.val() || 0, 10);
+ if (isNaN(check_value)) {
+ check_value = 1;
+ }
+ if (value !== check_value) {
$input.trigger('change');
return;
}
diff --git a/addons/website_sale_options/controllers/main.py b/addons/website_sale_options/controllers/main.py
index 4c9ba8e6502..1c84f9e460f 100644
--- a/addons/website_sale_options/controllers/main.py
+++ b/addons/website_sale_options/controllers/main.py
@@ -33,8 +33,8 @@ class WebsiteSaleOptions(WebsiteSale):
if add_qty or set_qty:
value = order._cart_update(
product_id=int(product_id),
- add_qty=int(add_qty),
- set_qty=int(set_qty),
+ add_qty=add_qty,
+ set_qty=set_qty,
attributes=attributes,
optional_product_ids=optional_product_ids
)