diff --git a/addons/web/static/src/views/kanban/kanban_model.js b/addons/web/static/src/views/kanban/kanban_model.js index acf5ec79519..e578d023a7f 100644 --- a/addons/web/static/src/views/kanban/kanban_model.js +++ b/addons/web/static/src/views/kanban/kanban_model.js @@ -305,11 +305,7 @@ class KanbanGroup extends Group { /** @type {[string | typeof FALSE, string][]} */ const colorEntries = Object.entries(colors); const selection = fieldSelection && Object.fromEntries(fieldSelection); - - if (!colorEntries.some((v) => v[1] === "muted")) { - colorEntries.push([FALSE, "muted"]); - } - + colorEntries.push([FALSE, "muted"]); return colorEntries.map(([value, color]) => { let string; if (value === FALSE) { diff --git a/addons/web/static/src/views/kanban/kanban_renderer.xml b/addons/web/static/src/views/kanban/kanban_renderer.xml index 35a53c5cae3..16a32c5193d 100644 --- a/addons/web/static/src/views/kanban/kanban_renderer.xml +++ b/addons/web/static/src/views/kanban/kanban_renderer.xml @@ -57,7 +57,7 @@
- +
{ assert.strictEqual(getCardTexts()[0], "yop\nTOGGLER\nMENU"); }); + + QUnit.test("'muted' already in progress bar colors", async (assert) => { + serverData.models.partner.records.push({ id: 5, bar: true }, { id: 6, bar: false }); + await makeView({ + type: "kanban", + resModel: "partner", + serverData, + arch: ` + + + + + + +
+ +
+
+
+
+ `, + groupBy: ["bar"], + }); + + assert.containsN(target, ".o_kanban_group:nth-child(1) .progress-bar", 2); + assert.deepEqual( + [...target.querySelectorAll(".o_kanban_group:nth-child(1) .progress-bar")].map( + (el) => el.dataset.tooltip + ), + ["1 blip", "1 Other"] + ); + assert.containsN(target, ".o_kanban_group:nth-child(2) .progress-bar", 4); + assert.deepEqual( + [...target.querySelectorAll(".o_kanban_group:nth-child(2) .progress-bar")].map( + (el) => el.dataset.tooltip + ), + ["1 yop", "1 gnap", "1 blip", "1 Other"] + ); + assert.deepEqual(getCounters(), ["2", "4"]); + + await click(target.querySelector(".o_kanban_group:nth-child(2) .progress-bar")); + + assert.deepEqual(getCounters(), ["2", "1"]); + assert.strictEqual( + target.querySelector(".o_kanban_group:nth-child(2) .o_kanban_record").innerText, + "ABC" + ); + assert.containsNone(target, ".o_kanban_group:nth-child(2) .o_kanban_load_more"); + + await click( + target.querySelector(".o_kanban_group:nth-child(2) .progress-bar:nth-child(2)") + ); + + assert.deepEqual(getCounters(), ["2", "1"]); + assert.strictEqual( + target.querySelector(".o_kanban_group:nth-child(2) .o_kanban_record").innerText, + "GHI" + ); + assert.containsNone(target, ".o_kanban_group:nth-child(2) .o_kanban_load_more"); + + await click( + target.querySelector(".o_kanban_group:nth-child(2) .progress-bar:nth-child(4)") + ); + + assert.deepEqual(getCounters(), ["2", "1"]); + assert.strictEqual( + target.querySelector(".o_kanban_group:nth-child(2) .o_kanban_record").innerText, + "" + ); + assert.containsNone(target, ".o_kanban_group:nth-child(2) .o_kanban_load_more"); + }); });