diff --git a/odoo/addons/base/static/src/js/res_config_settings.js b/odoo/addons/base/static/src/js/res_config_settings.js index ab09eaa7c27..3b4fdc81115 100644 --- a/odoo/addons/base/static/src/js/res_config_settings.js +++ b/odoo/addons/base/static/src/js/res_config_settings.js @@ -307,17 +307,16 @@ var BaseSettingController = FormController.extend({ }); -var BaseSettingsModel = BasicModel.extend({ - /** - * @override - */ - save: function (recordID) { - var self = this; - return this._super.apply(this, arguments).then(function (result) { - // we remove here the res_id, because the record should still be - // considered new. We want the web client to always perform a - // default_get to fetch the settings anew. - delete self.localData[recordID].res_id; +const BaseSettingsModel = BasicModel.extend({ + save(recordID, options) { + const savePoint = options && options.savePoint; + return this._super.apply(this, arguments).then(result => { + if (!savePoint && this.localData[recordID].model === 'res.config.settings') { + // we remove here the res_id, because the record should still be + // considered new. We want the web client to always perform a + // onchange to fetch the settings anew. + delete this.localData[recordID].res_id; + } return result; }); }, diff --git a/odoo/addons/base/static/tests/base_settings_tests.js b/odoo/addons/base/static/tests/base_settings_tests.js index 2c3439d8082..213e93c1e1d 100644 --- a/odoo/addons/base/static/tests/base_settings_tests.js +++ b/odoo/addons/base/static/tests/base_settings_tests.js @@ -12,12 +12,16 @@ var createActionManager = testUtils.createActionManager; QUnit.module('base_settings_tests', { beforeEach: function () { this.data = { - project: { + 'res.config.settings': { fields: { foo: {string: "Foo", type: "boolean"}, bar: {string: "Bar", type: "boolean"}, + tasks: {string: "one2many field", type: "one2many", relation: 'task'}, }, }, + 'task': { + fields: {} + } }; } }, function () { @@ -29,7 +33,7 @@ QUnit.module('base_settings_tests', { var form = await createView({ View: BaseSettingsView, - model: 'project', + model: 'res.config.settings', data: this.data, arch: '
', - 'project,2,list': '