diff --git a/addons/project/static/tests/project_task_groupby_tests.js b/addons/project/static/tests/project_task_groupby_tests.js index 8ae0f747b88..059792c78d1 100644 --- a/addons/project/static/tests/project_task_groupby_tests.js +++ b/addons/project/static/tests/project_task_groupby_tests.js @@ -18,11 +18,23 @@ QUnit.module("Project", (hooks) => { type: "many2one", relation: "project.project", }, + user_ids: { + string: "Assignees", + type: "many2many", + relation: "project.task", + }, + date_deadline: { + string: "Deadline", + type: "date", + } }, records: [{ id: 1, display_name: "My task", project_id: false, + user_ids: [], + date_deadline: false, + }], }; target = getFixture(); @@ -47,6 +59,43 @@ QUnit.module("Project", (hooks) => { assert.strictEqual(target.querySelector(".o_group_name").innerText, "🔒 Private (1)"); }); + QUnit.test("Test group label for empty assignees in tree", async function (assert) { + assert.expect(1); + + const views = { + "project.task,false,list": + ``, + }; + const { openView } = await start({ + serverData: { views }, + }); + await openView({ + res_model: "project.task", + views: [[false, "tree"]], + context: { group_by: ["user_ids"] }, + }); + + assert.strictEqual(target.querySelector(".o_group_name").innerText, "👤 Unassigned (1)"); + }); + + QUnit.test("Test group label for empty deadline in tree", async function (assert) { + assert.expect(1); + + const views = { + "project.task,false,list": + ``, + }; + const { openView } = await start({ + serverData: { views }, + }); + await openView({ + res_model: "project.task", + views: [[false, "tree"]], + context: { group_by: ["date_deadline"] }, + }); + + assert.strictEqual(target.querySelector(".o_group_name").innerText, "None (1)"); + }); QUnit.test("Test group label for empty project in kanban", async function (assert) { assert.expect(1); @@ -70,6 +119,50 @@ QUnit.module("Project", (hooks) => { assert.strictEqual(target.querySelector(".o_column_title").innerText, "🔒 Private\n1"); }); + QUnit.test("Test group label for empty assignees in kanban", async function (assert) { + assert.expect(1); + + const views = { + "project.task,false,kanban": + ` + + + + `, + }; + const { openView } = await start({ + serverData: { views }, + }); + await openView({ + res_model: "project.task", + views: [[false, "kanban"]], + }); + + assert.strictEqual(target.querySelector(".o_column_title").innerText, "👤 Unassigned\n1"); + }); + + QUnit.test("Test group label for empty deadline in kanban", async function (assert) { + assert.expect(1); + + const views = { + "project.task,false,kanban": + ` + + + + `, + }; + const { openView } = await start({ + serverData: { views }, + }); + await openView({ + res_model: "project.task", + views: [[false, "kanban"]], + }); + + assert.strictEqual(target.querySelector(".o_column_title").innerText, "None"); + }); + QUnit.test("Test group label for empty project in pivot", async function (assert) { assert.expect(1); @@ -92,4 +185,50 @@ QUnit.module("Project", (hooks) => { "Private", ); }); + + QUnit.test("Test group label for empty assignees in pivot", async function (assert) { + assert.expect(1); + + const views = { + "project.task,false,pivot": + ` + + `, + }; + const { openView } = await start({ + serverData: { views }, + }); + await openView({ + res_model: "project.task", + views: [[false, "pivot"]], + }); + + assert.strictEqual( + target.querySelector("tr:nth-of-type(2) .o_pivot_header_cell_closed").innerText, + "Unassigned", + ); + }); + + QUnit.test("Test group label for empty deadline in pivot", async function (assert) { + assert.expect(1); + + const views = { + "project.task,false,pivot": + ` + + `, + }; + const { openView } = await start({ + serverData: { views }, + }); + await openView({ + res_model: "project.task", + views: [[false, "pivot"]], + }); + + assert.strictEqual( + target.querySelector("tr:nth-of-type(2) .o_pivot_header_cell_closed").innerText, + "None", + ); + }); }); diff --git a/addons/web/static/src/views/pivot/pivot_model.js b/addons/web/static/src/views/pivot/pivot_model.js index 401178f09de..29e0f94b8e8 100644 --- a/addons/web/static/src/views/pivot/pivot_model.js +++ b/addons/web/static/src/views/pivot/pivot_model.js @@ -1554,7 +1554,7 @@ export class PivotModel extends Model { : this.env._t("No"); } if (value === false) { - return this._getEmptyGroupLabel(groupBy); + return this._getEmptyGroupLabel(fieldName); } if (value instanceof Array) { return this._getNumberedLabel(value, fieldName, config);