diff --git a/addons/sale_stock/tests/test_sale_stock.py b/addons/sale_stock/tests/test_sale_stock.py
index 0d35dc00190..398d3f5efa1 100644
--- a/addons/sale_stock/tests/test_sale_stock.py
+++ b/addons/sale_stock/tests/test_sale_stock.py
@@ -52,7 +52,7 @@ class TestSaleStock(TestSale):
self.assertEqual(len(self.so.picking_ids), 2, 'Sale Stock: number of pickings should be 2')
pick_2 = self.so.picking_ids[0]
pick_2.move_lines.write({'quantity_done': 1})
- self.assertIsNone(pick_2.button_validate(), 'Sale Stock: second picking should be final without need for a backorder')
+ self.assertTrue(pick_2.button_validate(), 'Sale Stock: second picking should be final without need for a backorder')
self.assertEqual(self.so.invoice_status, 'to invoice', 'Sale Stock: so invoice_status should be "to invoice" after complete delivery')
del_qties = [sol.qty_delivered for sol in self.so.order_line]
del_qties_truth = [2.0 if sol.product_id.type in ['product', 'consu'] else 0.0 for sol in self.so.order_line]
@@ -103,7 +103,7 @@ class TestSaleStock(TestSale):
# deliver, check the delivered quantities
pick = self.so.picking_ids
pick.move_lines.write({'quantity_done': 2})
- self.assertIsNone(pick.button_validate(), 'Sale Stock: complete delivery should not need a backorder')
+ self.assertTrue(pick.button_validate(), 'Sale Stock: complete delivery should not need a backorder')
del_qties = [sol.qty_delivered for sol in self.so.order_line]
del_qties_truth = [2.0 if sol.product_id.type in ['product', 'consu'] else 0.0 for sol in self.so.order_line]
self.assertEqual(del_qties, del_qties_truth, 'Sale Stock: delivered quantities are wrong after partial delivery')
diff --git a/addons/stock/models/stock_move_line.py b/addons/stock/models/stock_move_line.py
index 65572945870..4b0dfdd41d7 100644
--- a/addons/stock/models/stock_move_line.py
+++ b/addons/stock/models/stock_move_line.py
@@ -262,7 +262,7 @@ class StockMoveLine(models.Model):
except UserError:
pass
if new_product_qty != ml.product_qty:
- new_product_uom_qty = self.product_id.uom_id._compute_quantity(new_product_qty, self.product_uom_id, rounding_method='HALF-UP')
+ new_product_uom_qty = ml.product_id.uom_id._compute_quantity(new_product_qty, ml.product_uom_id, rounding_method='HALF-UP')
ml.with_context(bypass_reservation_update=True).product_uom_qty = new_product_uom_qty
# When editing a done move line, the reserved availability of a potential chained move is impacted. Take care of running again `_action_assign` on the concerned moves.
diff --git a/addons/stock/models/stock_picking.py b/addons/stock/models/stock_picking.py
index 95c665d20ff..80dc2069ad6 100644
--- a/addons/stock/models/stock_picking.py
+++ b/addons/stock/models/stock_picking.py
@@ -737,7 +737,7 @@ class Picking(models.Model):
if self._check_backorder():
return self.action_generate_backorder_wizard()
self.action_done()
- return
+ return True
def action_generate_backorder_wizard(self):
view = self.env.ref('stock.view_backorder_confirmation')
diff --git a/addons/web/static/src/scss/fields.scss b/addons/web/static/src/scss/fields.scss
index 2a35c33005a..8a5ee6201bd 100644
--- a/addons/web/static/src/scss/fields.scss
+++ b/addons/web/static/src/scss/fields.scss
@@ -39,9 +39,7 @@
// Flex fields (inline)
&.o_field_many2one, &.o_field_radio, &.o_field_many2manytags, &.o_field_percent_pie, &.o_field_monetary, &.o_field_binary_file {
- @media (min-width: $screen-sm-min) {
- @include o-inline-flex-display;
- }
+ @include o-inline-flex-display;
> span, > button {
@include o-flex(0, 0, auto);
}
@@ -255,6 +253,9 @@
}
// Radio buttons
&.o_field_radio {
+ @media (max-width: $screen-xs-max) {
+ display: inline-block;
+ }
.o_radio_input {
outline: none;
}
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 55040849635..153527096a5 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
@@ -29,9 +29,9 @@ var ProductWishlist = Widget.extend({
if ($('.wishlist-section').length) {
$('.wishlist-section a.o_wish_rm').on('click', function (e){ self.wishlist_rm(e, false); });
$('.wishlist-section a.o_wish_add').on('click', function (e){
- $(e.currentTarget).addClass('disabled');
+ $('.wishlist-section a.o_wish_add').addClass('disabled');
self.wishlist_add_or_mv(e).then(function(o) {
- $(e.currentTarget).removeClass('disabled');
+ $('.wishlist-section a.o_wish_add').removeClass('disabled');
});
});
}