Как применить фильтр домена, чтобы этапы в задаче выглядели разумно? - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь сделать проект мудрым этапов проекта. По умолчанию этапы задачи генерируются по проекту.

Я сделал это, чтобы добавить отношения Many2many для отдела и этапов.

 class DepartmentStages(models.Model):
    _inherit = 'project.task.type'

    department_ids = fields.Many2many(comodel_name='hr.department',
        relation='hr_department_project_task_type_rel',
        column1='project_task_type_id',
        column2='hr_department_id', string='Departments')

Кроме того, я добавил stages_ids в hr.department.

class HrDepartmentInherit(models.Model):
    _inherit = 'hr.department'

    stage_ids = fields.Many2many(comodel_name='project.task.type',
        relation='hr_department_project_task_type_rel',
        column1='hr_department_id',
        column2='project_task_type_id',
        string='Tasks Stages')

Я добавил department_id поле в project.project.

class ProjectProjectInhert(models.Model):
    _inherit = 'project.project'

    department_id = fields.Many2one(
        comodel_name='hr.department',
        default=_get_department,
        string='Department')

    @api.multi
    def _get_department(self):
        emp_model = self.env['hr.employee']
        department_id = False
        employee = emp_model.search([('user_id', '=', self.env.uid)], limit=1)
        if employee and employee.department_id:
            department_id = employee.department_id.id
        return department_id 

Чтобы получить stage_id в project.task, я унаследовал поле следующим образом:

class ProjectTaskInherit(models.Model):
    _inherit = 'project.task'

    stage_id = fields.Many2one(comodel_name='project.task.type', string='Stage',
        track_visibility='onchange', domain="[('department_ids', '=', project_id.department_id)]")

Это показывает Uncaught Error: AttributeError: object has no attribute 'department_id'.

Итак, как мне применить фильтр домена, чтобы получить поэтапный отдел? Заранее спасибо.

...