diff --git a/addons/web/static/src/views/fields/domain/domain_field.xml b/addons/web/static/src/views/fields/domain/domain_field.xml index cf6c75a8215..7e208917a8d 100644 --- a/addons/web/static/src/views/fields/domain/domain_field.xml +++ b/addons/web/static/src/views/fields/domain/domain_field.xml @@ -77,10 +77,9 @@ t-on-click="() => this.checkProps()" /> - - - - + + + diff --git a/addons/web/static/tests/views/fields/domain_field_tests.js b/addons/web/static/tests/views/fields/domain_field_tests.js index a37730131fd..575befae9d4 100644 --- a/addons/web/static/tests/views/fields/domain_field_tests.js +++ b/addons/web/static/tests/views/fields/domain_field_tests.js @@ -954,6 +954,45 @@ QUnit.module("Fields", (hooks) => { assert.containsOnce(target, ".modal", "the domain is invalid: the dialog is not closed"); }); + QUnit.test( + "edit domain button is available even while loading records count", + async function (assert) { + serverData.models.partner.fields.display_name.default = "[]"; + patchWithCleanup(odoo, { + debug: true, + }); + const searchCountDeffered = makeDeferred(); + await makeView({ + type: "form", + resModel: "partner", + serverData, + arch: ` +
+ + `, + mockRPC: async (route) => { + if (route === "/web/dataset/call_kw/partner/search_count") { + await searchCountDeffered; + } + if (route === "/web/domain/validate") { + return true; + } + }, + }); + assert.containsNone(target, ".modal"); + assert.containsOnce(target, ".o_field_domain_dialog_button"); + await click(target, ".o_field_domain_dialog_button"); + searchCountDeffered.resolve(); + assert.containsOnce(target, ".modal"); + await click(target, ".modal-footer .btn-primary"); + assert.containsNone(target, ".modal"); + assert.strictEqual( + target.querySelector(".o_domain_show_selection_button").textContent, + "5 record(s) " + ); + } + ); + QUnit.test( "quick check on save if domain has been edited via the debug input", async function (assert) {