diff --git a/addons/web_editor/static/src/js/content/body_manager.js b/addons/web_editor/static/src/js/content/body_manager.js index 85ace262fc5..1045e94a65a 100644 --- a/addons/web_editor/static/src/js/content/body_manager.js +++ b/addons/web_editor/static/src/js/content/body_manager.js @@ -44,7 +44,12 @@ var BodyManager = rootWidget.RootWidget.extend(ServiceProviderMixin, { var route = event.data.args[0]; if (_.str.startsWith(route, '/web/dataset/call_kw/')) { var params = event.data.args[1]; + var options = event.data.args[2]; params.kwargs.context = _.extend({}, weContext.get(), params.kwargs.context || {}); + if (options) { + params.kwargs.context = _.omit(params.kwargs.context, options.noContextKeys); + event.data.args[2] = _.omit(options, 'noContextKeys'); + } params.kwargs.context = JSON.parse(JSON.stringify(params.kwargs.context)); } } diff --git a/addons/web_editor/static/src/js/editor/rte.js b/addons/web_editor/static/src/js/editor/rte.js index dfa77214c3a..bf16cc090e5 100644 --- a/addons/web_editor/static/src/js/editor/rte.js +++ b/addons/web_editor/static/src/js/editor/rte.js @@ -576,7 +576,9 @@ var RTEWidget = Widget.extend({ this._getEscapedElement($el).prop('outerHTML'), $el.data('oe-xpath') || null, ], - context: withLang ? context : _.extend({}, context, {lang: undefined}), + context: context, + }, withLang ? undefined : { + noContextKeys: 'lang', }); }, diff --git a/addons/web_editor/static/src/js/widgets/ace.js b/addons/web_editor/static/src/js/widgets/ace.js index bd5b4a9c47a..f3c47f30050 100644 --- a/addons/web_editor/static/src/js/widgets/ace.js +++ b/addons/web_editor/static/src/js/widgets/ace.js @@ -594,7 +594,8 @@ var ViewEditor = Widget.extend({ model: 'ir.ui.view', method: 'write', args: [[session.id], {arch: session.text}], - context: _.extend({}, weContext.get(), {lang: undefined}), + }, { + noContextKeys: 'lang', }).then(function () { self._toggleDirtyInfo(session.id, 'xml', false); def.resolve();