diff --git a/addons/web/static/src/views/fields/reference/reference_field.xml b/addons/web/static/src/views/fields/reference/reference_field.xml index c1f69f15d93..c3873011c76 100644 --- a/addons/web/static/src/views/fields/reference/reference_field.xml +++ b/addons/web/static/src/views/fields/reference/reference_field.xml @@ -15,7 +15,10 @@ - + diff --git a/addons/web/static/tests/views/fields/reference_field_tests.js b/addons/web/static/tests/views/fields/reference_field_tests.js index a1ee0c7b9cc..55cbaa04433 100644 --- a/addons/web/static/tests/views/fields/reference_field_tests.js +++ b/addons/web/static/tests/views/fields/reference_field_tests.js @@ -526,6 +526,37 @@ QUnit.module("Fields", (hooks) => { ); }); + QUnit.test("Many2One 'Search more...' updates on resModel change", async function (assert) { + + serverData.views = { + "product,false,list": '', + "product,false,search": '', + }; + + await makeView({ + type: "form", + resModel: "partner", + serverData, + arch: '
', + }); + + // Selecting a relation + await editSelect(target.querySelector("div.o_field_reference"), "select.o_input", "partner_type"); + + // Selecting another relation + await editSelect(target.querySelector("div.o_field_reference"), "select.o_input", "product"); + + // Opening the Search More... option + await click(target.querySelector("div.o_field_reference"), "input.o_input"); + await click(target.querySelector("div.o_field_reference"), ".o_m2o_dropdown_option_search_more"); + + assert.strictEqual( + target.querySelector("div.modal td.o_data_cell").innerText, + "xphone", + "The search more should lead to the values of product." + ); + }); + QUnit.test( "computed reference field changed by onchange to 'False,0' value", async function (assert) { @@ -811,6 +842,7 @@ QUnit.module("Fields", (hooks) => { await editInput(target, ".o_field_widget[name='model_id'] input", "Partner"); await click(target, ".ui-autocomplete .ui-menu-item:first-child"); + await nextTick(); assert.strictEqual( target.querySelector(".o_field_widget[name='reference'] input").value, "", @@ -1028,6 +1060,7 @@ QUnit.module("Fields", (hooks) => { //Select the "Partner" option, different from original "Product" const dropdownItems = [...target.querySelectorAll(".o_list_table .o_list_many2one .o_input_dropdown .dropdown-item")]; await click(dropdownItems.filter(item => item.text === "Partner")[0]); + await nextTick(); assert.strictEqual(target.querySelector(".reference_field input").value, ""); assert.strictEqual(target.querySelector(".o_list_many2one input").value, "Partner"); //Void the associated, required, "reference" field and make sure the form marks the field as required