From 0ec47ea185cc0b10d64ef6f8dc95f7e80c4f692e 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: Wed, 27 May 2026 10:47:00 +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 --- soong_workflow/models/soong_workflow_record.py | 18 ++++++++++++------ .../security/soong_workflow_security.xml | 15 +++++++++++++-- soong_workflow/views/soong_workflow_record.xml | 2 +- .../yuthon_official_incoming_normal_views.xml | 3 --- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 330bb36dd..c3a201ead 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -65,7 +65,7 @@ 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_is_manager') + is_manager = fields.Boolean(string="是否管理员", compute='_compute_is_manager', search='_search_is_manager') soong_state = fields.Selection([('to_do', '待办'), ('done', '已办'),('to_active', '待归档'), ('active', '已归档')], string="流程状态", default="to_do") member_of_department = fields.Boolean("是否是本部门数据", compute='_compute_part_of_department', search='_search_part_of_department') @@ -109,6 +109,17 @@ class SoongWorkflowRecord(models.Model): store=False, ) + @api.depends('create_uid') + def _compute_is_manager(self): + self.is_manager = self.env.user.has_group('soong_workflow.group_soong_workflow_sub_manager') + + def _search_is_manager(self, operator, value): + is_manager_user = self.env.user.has_group('soong_workflow.group_soong_workflow_sub_manager') + if is_manager_user: + return [] + else: + return [('member_of_department', '=', True)] + def correction(self): for rec in self: biz_record = self.env[rec.res_model].browse(rec.res_id) @@ -738,11 +749,6 @@ class SoongWorkflowRecord(models.Model): else: related_record.self_users_ids = [(5,)] - - @api.depends('create_uid') - def _compute_is_manager(self): - self.is_manager = self.env.user.has_group('soong_workflow.group_soong_workflow_manager') - def update_users_ids(self): record_ids = self.env["soong.workflow.record"].browse( self._context.get('active_ids', self._context.get('active_id', [])) diff --git a/soong_workflow/security/soong_workflow_security.xml b/soong_workflow/security/soong_workflow_security.xml index 53e5e05c4..a61555c90 100644 --- a/soong_workflow/security/soong_workflow_security.xml +++ b/soong_workflow/security/soong_workflow_security.xml @@ -16,10 +16,22 @@ + + 下级管理员 + + + + + Manager - + @@ -33,7 +45,6 @@ - Manager: 访问所有数据 diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index 027365839..c20d8659f 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -469,7 +469,7 @@ ir.actions.act_window soong.workflow.record tree,kanban,search - [('reclaim_state', '=', False), ('member_of_department', '=', True), ('is_company', '=', True),('approve_state','!=','start'),('approvals_group_id.name', 'not in', ['考勤', '人事'])] + [('reclaim_state', '=', False), ('is_company', '=', True),('approve_state','!=','start'),('approvals_group_id.name', 'not in', ['考勤', '人事'])] {'search_default_my_department_shifts': True, 'default_order': 'display_end_time desc'} diff --git a/yuthon_official/views/yuthon_official_incoming_normal_views.xml b/yuthon_official/views/yuthon_official_incoming_normal_views.xml index 8f1a41d95..b61ef7172 100644 --- a/yuthon_official/views/yuthon_official_incoming_normal_views.xml +++ b/yuthon_official/views/yuthon_official_incoming_normal_views.xml @@ -31,9 +31,6 @@ class="btn-primary" invisible="not work_end"/> - - -