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."), ]