From 91e242e1c7ff3a28dc258bf1e1282fbd126e7e60 Mon Sep 17 00:00:00 2001 From: Aaron Bohy Date: Mon, 12 Sep 2022 12:47:01 +0000 Subject: [PATCH] [FIX] web: kanban grouped by date: display None if not set MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before this commit, `false` was displayed as column title in kanban views grouped by date(time) fields, for the column containing records with unset value. When grouped by relational and date(time) fields, we expect `None` to be displayed. This commit restores the legacy behavior. closes odoo/odoo#100020 Signed-off-by: Géry Debongnie --- .../src/views/kanban/kanban_renderer.js | 15 ++++++++---- .../static/tests/views/kanban_view_tests.js | 23 +++++++++++++++++++ 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/addons/web/static/src/views/kanban/kanban_renderer.js b/addons/web/static/src/views/kanban/kanban_renderer.js index 018df770d15..6ac7c953f97 100644 --- a/addons/web/static/src/views/kanban/kanban_renderer.js +++ b/addons/web/static/src/views/kanban/kanban_renderer.js @@ -258,12 +258,17 @@ export class KanbanRenderer extends Component { getGroupName({ groupByField, count, displayName, isFolded }) { let name = displayName; - if (isNull(name)) { - name = this.env._t("None"); - } else if (isRelational(groupByField)) { - name = name || this.env._t("None"); - } else if (groupByField.type === "boolean") { + if (groupByField.type === "boolean") { name = name ? this.env._t("Yes") : this.env._t("No"); + } else if (!name) { + if ( + isRelational(groupByField) || + groupByField.type === "date" || + groupByField.type === "datetime" || + isNull(name) + ) { + name = this.env._t("None"); + } } return !this.env.isSmall && isFolded ? `${name} (${count})` : name; } diff --git a/addons/web/static/tests/views/kanban_view_tests.js b/addons/web/static/tests/views/kanban_view_tests.js index 5ed34007dc7..16a5815678b 100644 --- a/addons/web/static/tests/views/kanban_view_tests.js +++ b/addons/web/static/tests/views/kanban_view_tests.js @@ -626,6 +626,29 @@ QUnit.module("Views", (hooks) => { } ); + QUnit.test("kanban grouped by date field", async (assert) => { + serverData.models.partner.records[0].date = "2007-06-10"; + await makeView({ + type: "kanban", + resModel: "partner", + serverData, + arch: ` + + + + +
+
+
+
`, + groupBy: ["date"], + }); + + assert.deepEqual(getNodesTextContent(target.querySelectorAll(".o_column_title")), [ + "None", + "June 2007", + ]); + }); QUnit.test("context can be used in kanban template", async (assert) => { await makeView({ type: "kanban",