From c90aec080b0a17cef200580af905d95136e8a0a2 Mon Sep 17 00:00:00 2001 From: Lucas Perais Date: Mon, 24 Oct 2022 15:10:22 +0000 Subject: [PATCH] [FIX] web: kanban dropdown without toggler In a kanban arch, have a dropdown that don't have a toggler, just an explicit menu. Before this commit, there was a crash. After this commit, the kanban and the dropdown are correctly rendered. closes odoo/odoo#104019 X-original-commit: 01418c474cb02455660156cf47822588f0554376 Signed-off-by: Lucas Perais (lpe) --- .../src/views/kanban/kanban_compiler.js | 2 +- .../static/tests/views/kanban_view_tests.js | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/views/kanban/kanban_compiler.js b/addons/web/static/src/views/kanban/kanban_compiler.js index 7a2fd7e6794..113f02a413c 100644 --- a/addons/web/static/src/views/kanban/kanban_compiler.js +++ b/addons/web/static/src/views/kanban/kanban_compiler.js @@ -88,7 +88,7 @@ export class KanbanCompiler extends ViewCompiler { return this.renderDropdown(part); } dropdown.parts.push(part); - if (part !== "menu") { + if (part !== "menu" || dropdown.parts.includes("dropdown")) { dropdown.shouldInsert = !dropdown.inserted; dropdown.inserted = true; } diff --git a/addons/web/static/tests/views/kanban_view_tests.js b/addons/web/static/tests/views/kanban_view_tests.js index d88ff80e6f3..05e619260ac 100644 --- a/addons/web/static/tests/views/kanban_view_tests.js +++ b/addons/web/static/tests/views/kanban_view_tests.js @@ -380,6 +380,34 @@ QUnit.module("Views", (hooks) => { assert.strictEqual(target.querySelector("span.o_text_block").textContent, "yop"); }); + QUnit.test("dropdown without toggler are correctly rendered", async (assert) => { + serverData.models.partner.records = [serverData.models.partner.records[0]]; + await makeView({ + type: "kanban", + resModel: "partner", + serverData, + arch: ` + + + + + `, + }); + + assert.containsOnce(target, ".o-dropdown.dropdown.o_dropdown_kanban"); + await click(target, ".o_kanban_record .o-dropdown button.dropdown-toggle"); + assert.containsOnce( + target, + ".o_kanban_record .o-dropdown .o-dropdown--menu > div > a.someItem" + ); + }); + QUnit.test("basic grouped rendering", async (assert) => { assert.expect(13);