diff --git a/addons/web/static/src/views/kanban/kanban_arch_parser.js b/addons/web/static/src/views/kanban/kanban_arch_parser.js index 9825b256120..0de83a740a6 100644 --- a/addons/web/static/src/views/kanban/kanban_arch_parser.js +++ b/addons/web/static/src/views/kanban/kanban_arch_parser.js @@ -154,7 +154,7 @@ export class KanbanArchParser { const cardColorEl = cardDoc.querySelector("[color]"); const cardColorField = cardColorEl && cardColorEl.getAttribute("color"); - const colorEl = cardDoc.querySelector(".oe_kanban_colorpicker[data-field]"); + const colorEl = xmlDoc.querySelector("templates .oe_kanban_colorpicker[data-field]"); const colorField = (colorEl && colorEl.getAttribute("data-field")) || "color"; if (!defaultOrder.length && handleField) { diff --git a/addons/web/static/tests/views/kanban/kanban_arch_parser_tests.js b/addons/web/static/tests/views/kanban/kanban_arch_parser_tests.js new file mode 100644 index 00000000000..120f4e1df9d --- /dev/null +++ b/addons/web/static/tests/views/kanban/kanban_arch_parser_tests.js @@ -0,0 +1,36 @@ +/** @odoo-module **/ + +import { KanbanArchParser } from "@web/views/kanban/kanban_arch_parser"; +import { parseXML } from "@web/core/utils/xml"; + +function parseArch(arch, options = {}) { + const parser = new KanbanArchParser(); + const xmlDoc = parseXML(arch); + return parser.parse(xmlDoc, { fake: {name: { string: "Name", type: "char" },} }, "fake"); +} +QUnit.module("KanbanView - ArchParser"); + +QUnit.test("oe_kanban_colorpicker in kanban-menu and kanban-box", (assert) => { + const archInfo = parseArch(` + + + +