Odoo18-Base/addons/project/static/tests/project_models.js
2025-01-06 10:57:38 +07:00

113 lines
2.9 KiB
JavaScript

import { defineMailModels } from "@mail/../tests/mail_test_helpers";
import { defineModels, fields, models } from "@web/../tests/web_test_helpers";
export class ProjectProject extends models.Model {
_name = "project.project";
name = fields.Char();
is_favorite = fields.Boolean();
_records = [
{ id: 1, name: "Project 1" },
{ id: 2, name: "Project 2" },
];
}
export class ProjectTask extends models.Model {
_name = "project.task";
name = fields.Char();
parent_id = fields.Many2one({ relation: "project.task" });
child_ids = fields.One2many({
relation: "project.task",
relation_field: "parent_id",
});
subtask_count = fields.Integer();
closed_subtask_count = fields.Integer();
project_id = fields.Many2one({ relation: "project.project" });
display_in_project = fields.Boolean();
stage_id = fields.Many2one({ relation: "project.task.type" });
milestone_id = fields.Many2one({ relation: "project.milestone" });
state = fields.Selection({
selection: [
["01_in_progress", "In Progress"],
["02_changes_requested", "Changes Requested"],
["03_approved", "Approved"],
["04_waiting_normal", "Waiting Normal"],
],
});
user_ids = fields.Many2many({
string: "Assignees",
relation: "res.users",
});
priority = fields.Selection({
selection: [
["0", "Low"],
["1", "High"],
],
});
planned_date_begin = fields.Datetime({ string: "Start Date" });
date_deadline = fields.Datetime({ string: "Stop Date" });
depend_on_ids = fields.Many2many({ relation: "project.task" });
closed_depend_on_count = fields.Integer();
_records = [
{
id: 1,
name: "Regular task 1",
project_id: 1,
stage_id: 1,
milestone_id: 1,
state: "01_in_progress",
user_ids: [7],
},
{
id: 2,
name: "Regular task 2",
project_id: 1,
stage_id: 1,
state: "03_approved",
},
{
id: 3,
name: "Private task 1",
project_id: false,
stage_id: 1,
state: "04_waiting_normal",
},
];
}
export class ProjectTaskType extends models.Model {
_name = "project.task.type";
name = fields.Char();
sequence = fields.Integer();
_records = [
{ id: 1, name: "Todo" },
{ id: 2, name: "In Progress" },
{ id: 3, name: "Done" },
];
}
export class ProjectMilestone extends models.Model {
_name = "project.milestone";
name = fields.Char();
_records = [{ id: 1, name: "Milestone 1" }];
}
export function defineProjectModels() {
defineMailModels();
defineModels(projectModels);
}
export const projectModels = {
ProjectProject,
ProjectTask,
ProjectTaskType,
ProjectMilestone,
};