Files
odoo_source/addons/project/static/tests/project_task_groupby_tests.js
T
kais-odoo 32dec19ee0 [FIX] web,project: fixes groupby attribute in pivot _getEmptyGroupLabel
Before this commit, since we used to show custom label for project and assignees
as 'private' and 'unassigned' section in pivot view,  if we want to display show
custom label for groupby with sub group type we might get confuse with passing
'groupby' attribute on _getEmptyGroupLabel pivot method.

In this commit, fixes groupby issue by passing 'fieldname' instead of 'groupby'
cause groupby contains 'groupname : subgroup' like 'deadline : year'.

closes odoo/odoo#130960

Task: 3186578
X-original-commit: cae3531deb032289f5f823df7ffa565ee89189ea
Signed-off-by: Xavier Bol (xbo) <xbo@odoo.com>
2023-08-05 12:20:31 +02:00

235 lines
7.3 KiB
JavaScript

/** @odoo-module */
import { getFixture } from "@web/../tests/helpers/utils";
import { setupViewRegistries } from "@web/../tests/views/helpers";
import { start, startServer } from "@mail/../tests/helpers/test_utils";
let target;
QUnit.module("Project", (hooks) => {
hooks.beforeEach(async () => {
const pyEnv = await startServer();
pyEnv.mockServer.models['project.task'] = {
fields: {
id: { string: "Id", type: "integer" },
display_name: { string: "Name", type: "char" },
project_id: {
string: "Project",
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();
setupViewRegistries();
});
QUnit.test("Test group label for empty project in tree", async function (assert) {
assert.expect(1);
const views = {
"project.task,false,list":
`<tree js_class="project_task_list"/>`,
};
const { openView } = await start({
serverData: { views },
});
await openView({
res_model: "project.task",
views: [[false, "tree"]],
context: { group_by: ["project_id"] },
});
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":
`<tree js_class="project_task_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":
`<tree js_class="project_task_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);
const views = {
"project.task,false,kanban":
`<kanban js_class="project_task_kanban" default_group_by="project_id">
<templates>
<t t-name="kanban-box"/>
</templates>
</kanban>`,
};
const { openView } = await start({
serverData: { views },
});
await openView({
res_model: "project.task",
views: [[false, "kanban"]],
});
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":
`<kanban js_class="project_task_kanban" default_group_by="user_ids">
<templates>
<t t-name="kanban-box"/>
</templates>
</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":
`<kanban js_class="project_task_kanban" default_group_by="date_deadline">
<templates>
<t t-name="kanban-box"/>
</templates>
</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);
const views = {
"project.task,false,pivot":
`<pivot js_class="project_pivot">
<field name="project_id" type="row"/>
</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,
"Private",
);
});
QUnit.test("Test group label for empty assignees in pivot", async function (assert) {
assert.expect(1);
const views = {
"project.task,false,pivot":
`<pivot js_class="project_pivot">
<field name="user_ids" type="row"/>
</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":
`<pivot js_class="project_pivot">
<field name="date_deadline" type="row"/>
</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",
);
});
});