From cd28978b7aaffdcd902a429192666871b765db9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 15:45:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/soong_workflow_record.py | 45 ++----------------- .../views/soong_workflow_record.xml | 6 +-- 2 files changed, 5 insertions(+), 46 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 203aac9cb..20c6ffa7c 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -50,9 +50,8 @@ class SoongWorkflowRecord(models.Model): department_id = fields.Many2one("hr.department", string="部门", required=True) done_by = fields.Many2one(comodel_name="res.users", string="发起人") active = fields.Boolean(string="归档", default=True) - is_manager = fields.Boolean(string="是否管理员", compute='_compute_part_of_department', store=True) + is_manager = fields.Boolean(string="是否管理员", compute='_compute_is_manager') soong_state = fields.Selection([('to_do', '待办'), ('done', '已办')], string="流程状态", default="to_do") - member_of_department = fields.Boolean("是否是本部门数据", compute='_compute_part_of_department', search='_search_part_of_department') # 人力资源流程的发生日期 workflow_happen_date = fields.Date(string="发生日期") @@ -241,47 +240,9 @@ class SoongWorkflowRecord(models.Model): related_record.self_users_ids = [(5,)] - @api.depends_context('uid', 'company') - def _compute_part_of_department(self): - user_employee = self._get_valid_employee_for_user() + @api.depends('create_uid') + def _compute_is_manager(self): self.is_manager = self.env.user.has_group('soong_workflow.group_soong_workflow_manager') - active_department = user_employee.department_id - parent_department = active_department.parent_id - # 递归获取父部门的所有子部门 - def get_all_children(departments): - all_children = self.env['hr.department'] - for department in departments: - children = department.child_ids - all_children += children - if children: - all_children += get_all_children(children) - return all_children - # 父部门及其所有子部门 - related_departments = parent_department + get_all_children(parent_department) - - for employee in self: - employee.member_of_department = employee.department_id in related_departments - - def _get_valid_employee_for_user(self): - user = self.env.user - employee = user.employee_ids - if not employee: - user_employees = user.employee_id.sudo().search([ - ('user_id', '=', user.id) - ]) - employee = user_employees.filtered(lambda r: r.company_id == user.company_id) or user_employees[:1] - return employee - # - def _search_part_of_department(self, operator, value): - if operator not in ('=', '!=') or not isinstance(value, bool): - raise UserError(_('Operation not supported')) - user_employee = self._get_valid_employee_for_user() - # Double negation - if not value: - operator = '!=' if operator == '=' else '=' - if not user_employee.department_id: - return [('id', operator, user_employee.id)] - return (['!'] if operator == '!=' else []) + [('department_id', '=', user_employee.department_id.id)] def open_record(self): return { diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index 0762d26b5..674e296a6 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -85,7 +85,6 @@ - @@ -119,9 +118,8 @@