diff --git a/addons/web/static/src/core/domain_selector/domain_selector_leaf_node.js b/addons/web/static/src/core/domain_selector/domain_selector_leaf_node.js index 2a1a9d3bf9b..35c275a792e 100644 --- a/addons/web/static/src/core/domain_selector/domain_selector_leaf_node.js +++ b/addons/web/static/src/core/domain_selector/domain_selector_leaf_node.js @@ -24,7 +24,20 @@ export class DomainSelectorLeafNode extends Component { } get displayedOperator() { - const op = this.getOperatorInfo(this.props.node.operator); + let op = this.getOperatorInfo(this.props.node.operator); + if (op) { + return op.label; + } + op = registry + .category("domain_selector/operator") + .getAll() + .find((op) => + op.matches({ + field: this.fieldInfo, + operator: this.props.node.operator, + value: this.props.node.operands[1], + }) + ); return op ? op.label : "?"; } get isValueHidden() { diff --git a/addons/web/static/src/core/domain_selector/domain_selector_operators.js b/addons/web/static/src/core/domain_selector/domain_selector_operators.js index 54e35368c65..f2fe1934f71 100644 --- a/addons/web/static/src/core/domain_selector/domain_selector_operators.js +++ b/addons/web/static/src/core/domain_selector/domain_selector_operators.js @@ -84,6 +84,7 @@ dso.add("like", { label: _lt("like"), value: "like", onDidChange: onDidChange(() => ({ value: "" })), + matches: matchValue(), }); dso.add("not like", { category: "like", diff --git a/addons/web/static/tests/core/domain_selector_tests.js b/addons/web/static/tests/core/domain_selector_tests.js index cbbb2b125c7..9f0d00d1257 100644 --- a/addons/web/static/tests/core/domain_selector_tests.js +++ b/addons/web/static/tests/core/domain_selector_tests.js @@ -339,4 +339,16 @@ QUnit.module("Components", (hooks) => { "should still have a single domain node" ); }); + + QUnit.test("operator fallback", async (assert) => { + await mount(DomainSelector, target, { + env, + props: { + resModel: "partner", + value: "[['foo', 'like', 'kikou']]", + }, + }); + + assert.strictEqual(target.querySelector(".o_domain_leaf").textContent, `Foo like "kikou"`); + }); });