diff --git a/addons/web/static/src/js/widgets/domain_selector.js b/addons/web/static/src/js/widgets/domain_selector.js index 74572e81b39..3844c87fece 100644 --- a/addons/web/static/src/js/widgets/domain_selector.js +++ b/addons/web/static/src/js/widgets/domain_selector.js @@ -805,7 +805,7 @@ var DomainLeaf = DomainNode.extend({ if (_.isBoolean(this.value)) { this.value = ""; } else if (_.isObject(this.value) && !_.isArray(this.value)) { // Can be object if parsed to x2x representation - this.value = this.value.id || ""; + this.value = this.value.id || value || ""; } } diff --git a/addons/web/static/tests/widgets/domain_selector_tests.js b/addons/web/static/tests/widgets/domain_selector_tests.js index 77d8eeb24da..55ddc971642 100644 --- a/addons/web/static/tests/widgets/domain_selector_tests.js +++ b/addons/web/static/tests/widgets/domain_selector_tests.js @@ -174,6 +174,26 @@ QUnit.module('DomainSelector', { domainSelector.destroy(); }); + + QUnit.test("building a domain with a m2o without following the relation", function (assert) { + assert.expect(1); + + var $target = $("#qunit-fixture"); + + // Create the domain selector and its mock environment + var domainSelector = new DomainSelector(null, "partner", [["product_id", "ilike", 1]], { + debugMode: true, + readonly: false, + }); + testUtils.addMockEnvironment(domainSelector, {data: this.data}); + domainSelector.appendTo($target); + + domainSelector.$('.o_domain_leaf_value_input').val('pad').trigger('input').trigger('change'); + assert.strictEqual(domainSelector.$('.o_domain_debug_input').val(), '[["product_id","ilike","pad"]]', + "string should have been allowed as m2o value"); + + domainSelector.destroy(); + }); }); }); });