diff --git a/addons/web/static/src/search/search_arch_parser.js b/addons/web/static/src/search/search_arch_parser.js index fbb270d982a..61911f02a0d 100644 --- a/addons/web/static/src/search/search_arch_parser.js +++ b/addons/web/static/src/search/search_arch_parser.js @@ -69,8 +69,7 @@ export class SearchArchParser extends XMLParser { this.visitSearch(node, visitChildren); break; case "searchpanel": - this.visitSearchPanel(node); - break; + return this.visitSearchPanel(node); case "group": this.visitGroup(node, visitChildren); break; diff --git a/addons/web/static/tests/search/search_model_tests.js b/addons/web/static/tests/search/search_model_tests.js index 10fd547c0fa..0e8d14c0e2f 100644 --- a/addons/web/static/tests/search/search_model_tests.js +++ b/addons/web/static/tests/search/search_model_tests.js @@ -965,6 +965,25 @@ QUnit.module("Search", (hooks) => { assert.deepEqual(model.domain, [["date_deadline", "<", "2021-09-17"]]); }); + QUnit.test("no search items created for search panel sections", async function (assert) { + const model = await makeSearchModel({ + serverData, + searchViewArch: ` + + + + + + + `, + resModel: "partner", + config: { viewType: "kanban" }, + }); + const sections = model.getSections(); + assert.strictEqual(sections.length, 2); + assert.deepEqual(sanitizeSearchItems(model), []); + }); + QUnit.test( "a field of type 'properties' should not be accepted as a search_default", async function (assert) {