diff --git a/addons/web/static/src/core/autocomplete/autocomplete.js b/addons/web/static/src/core/autocomplete/autocomplete.js index d863dd259a5..87a14958cfe 100644 --- a/addons/web/static/src/core/autocomplete/autocomplete.js +++ b/addons/web/static/src/core/autocomplete/autocomplete.js @@ -117,17 +117,15 @@ export class AutoComplete extends Component { ); } selectOption(indices, params = {}) { - this.inputRef.el.value = ""; - this.forceValFromProp = true; - const option = this.sources[indices[0]].options[indices[1]]; if (option.unselectable) { + this.inputRef.el.value = ""; return; } + this.forceValFromProp = true; this.props.onSelect(option, { ...params, - inputValue: this.inputRef.el.value.trim(), input: this.inputRef.el, }); this.close(); diff --git a/addons/web/static/src/views/fields/relational_utils.js b/addons/web/static/src/views/fields/relational_utils.js index 5a8942bdee8..26d1ace3f1e 100644 --- a/addons/web/static/src/views/fields/relational_utils.js +++ b/addons/web/static/src/views/fields/relational_utils.js @@ -167,7 +167,9 @@ export class Many2XAutocomplete extends owl.Component { }, fieldString, onClose: () => { - autoCompleteContainer.el.querySelector("input").focus(); + const autoCompleteInput = autoCompleteContainer.el.querySelector("input"); + autoCompleteInput.value = ""; + autoCompleteInput.focus(); }, }); diff --git a/addons/web/static/tests/views/fields/many2one_field_tests.js b/addons/web/static/tests/views/fields/many2one_field_tests.js index de9afc0c2a1..58a0e44b2d6 100644 --- a/addons/web/static/tests/views/fields/many2one_field_tests.js +++ b/addons/web/static/tests/views/fields/many2one_field_tests.js @@ -612,8 +612,6 @@ QUnit.module("Fields", (hooks) => { ); QUnit.test("many2ones in form views with search more", async function (assert) { - assert.expect(3); - for (let i = 5; i < 11; i++) { serverData.models.partner.records.push({ id: i, display_name: `Partner ${i}` }); } @@ -654,6 +652,7 @@ QUnit.module("Fields", (hooks) => { await selectDropdownItem(target, "trululu", "Search More..."); assert.strictEqual($("tr.o_data_row").length, 9, "should display 9 records"); + assert.equal(target.querySelector(".o_field_widget[name=trululu] input").value, "aaa"); const modal = target.querySelector(".modal");