70 lines
2.1 KiB
Python
70 lines
2.1 KiB
Python
from odoo import fields, models
|
|
|
|
|
|
class DirectiveTemplate(models.Model):
|
|
_name = "directive.template"
|
|
_description = "Directive Template"
|
|
_order = "name asc, id desc"
|
|
|
|
PRIORITY = [
|
|
("0", "Low"),
|
|
("1", "Normal"),
|
|
("2", "High"),
|
|
]
|
|
|
|
name = fields.Char(string="Название шаблона директивы", required=True)
|
|
code = fields.Char(string="Технический код", required=True, index=True)
|
|
active = fields.Boolean(string="Активен", default=True)
|
|
|
|
sequence = fields.Integer(string="Порядок", default=10)
|
|
|
|
work_type_id = fields.Many2one(
|
|
"directive.work.type",
|
|
string="Тип работ",
|
|
required=True,
|
|
ondelete="restrict",
|
|
index=True,
|
|
)
|
|
|
|
planned_hours = fields.Float(string="Трудоёмкость", required=True)
|
|
load_percent = fields.Integer(string="Процент загрузки", default=10)
|
|
|
|
priority = fields.Selection(
|
|
selection=PRIORITY,
|
|
string="Приоритет",
|
|
default="0",
|
|
required=True,
|
|
)
|
|
|
|
executor_role_id = fields.Many2one(
|
|
"res.users.role",
|
|
string="Роль исполнителя (по умолчанию)",
|
|
ondelete="restrict",
|
|
index=True,
|
|
)
|
|
requester_role_id = fields.Many2one(
|
|
"res.users.role",
|
|
string="Роль заявителя (по умолчанию)",
|
|
ondelete="restrict",
|
|
index=True,
|
|
)
|
|
|
|
default_stage_id = fields.Many2one(
|
|
"directive.stage",
|
|
string="Стартовый статус",
|
|
default=lambda self: self.env["directive.stage"].search([("code", "=", "draft")], limit=1),
|
|
ondelete="restrict",
|
|
index=True,
|
|
)
|
|
|
|
handler_key = fields.Char(
|
|
string="Handler key",
|
|
help="Например: project.task.collect_ft (метод модели источника)",
|
|
)
|
|
|
|
description = fields.Text(string="Описание/инструкции")
|
|
|
|
_sql_constraints = [
|
|
("directive_template_code_uniq", "unique(code)", "Template code must be unique."),
|
|
]
|