diff --git a/addons/stock/models/stock_move.py b/addons/stock/models/stock_move.py index a5b031f8205..494c6ead071 100644 --- a/addons/stock/models/stock_move.py +++ b/addons/stock/models/stock_move.py @@ -994,7 +994,7 @@ class StockMove(models.Model): 'views': [(view.id, 'form')], 'view_id': view.id, 'target': 'new', - 'res_id': self.id} + 'res_id': self.picking_id.id} show_picking = action_show_picking # Quants management diff --git a/addons/stock_account/models/product.py b/addons/stock_account/models/product.py index 6707c437c68..bb04c02903d 100644 --- a/addons/stock_account/models/product.py +++ b/addons/stock_account/models/product.py @@ -201,8 +201,8 @@ class ProductProduct(models.Model): @api.model def _get_anglo_saxon_price_unit(self, uom=False): price = self.standard_price - if not uom or self.uom_id.id == uom.id: - return price + if not self or not uom or self.uom_id.id == uom.id: + return price or 0.0 return self.uom_id._compute_price(price, uom) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index f516c2ea1a1..e19ae3be0bb 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -40,6 +40,7 @@ from odoo.http import content_disposition, dispatch_rpc, request, \ from odoo.exceptions import AccessError, UserError from odoo.models import check_method_name from odoo.service import db +from odoo.service.report import exp_report, exp_report_get _logger = logging.getLogger(__name__) @@ -1483,14 +1484,11 @@ class Reports(http.Controller): report_ids = action['datas'].pop('ids') report_data.update(action['datas']) - report_id = dispatch_rpc('report', 'report', [ - request.session.db, request.session.uid, request.session.password, - action["report_name"], report_ids, report_data, context]) + report_id = exp_report(request.session.db, request.session.uid, action["report_name"], report_ids, report_data, context) report_struct = None while True: - report_struct = dispatch_rpc('report', 'report_get', [ - request.session.db, request.session.uid, request.session.password, report_id]) + report_struct = exp_report_get(request.session.db, request.session.uid, report_id) if report_struct["state"]: break diff --git a/addons/web/static/src/js/views/form_relational_widgets.js b/addons/web/static/src/js/views/form_relational_widgets.js index c82b33cb910..19307cb67b7 100644 --- a/addons/web/static/src/js/views/form_relational_widgets.js +++ b/addons/web/static/src/js/views/form_relational_widgets.js @@ -1118,6 +1118,11 @@ var One2ManyListView = X2ManyListView.extend({ self.x2m.reload_current_view(); }); }, + create_function: function(data, options) { + return self.x2m.data_create(data, options).done(function() { + self.x2m.reload_current_view(); + }); + }, alternative_form_view: self.x2m.field.views ? self.x2m.field.views.form : undefined, parent_view: self.x2m.view, child_name: self.x2m.name,