From ef06bcebd78195cec66864c8ca92cba565d96f61 Mon Sep 17 00:00:00 2001 From: zhou <123@> Date: Wed, 18 Jun 2025 20:07:16 +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_mixin.py | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 28a454ea7..cecd5e397 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -125,19 +125,19 @@ class SoongWorkflowMixin(models.AbstractModel): def create(self, vals_list): res = super().create(vals_list) for record in res: - button_ids = record.sudo().workflow_id.node_ids.button_ids.search([('workflow_id', '=', res.workflow_id.id), ('sequence', '=', 1)]) + button_ids = record.sudo().workflow_id.node_ids.button_ids.search([('workflow_id', '=', res.workflow_id.id)]) + current_user_role_id = record.env.user.employee_id.user_role_id.id + for button in button_ids: + print(f" - 按钮ID: {button.id}, 节点名称: {button.node_id.name}") for button_id in button_ids: + allowed_role_ids = [] if button_id.users_role_id: - employee_ids = record.sudo().env['hr.employee'].search( - ['|', ('user_role_id', '=', button_id.users_role_id.id), - ('user_role_ids', 'in', button_id.users_role_id.id), - ]) + allowed_role_ids.append(button_id.users_role_id.id) + elif button_id.users_role_group_ids: + allowed_role_ids.extend(button_id.users_role_group_ids.user_role_ids.ids) else: - employee_ids = record.sudo().env['hr.employee'].search([ - '|', ('user_role_id', 'in', button_id.users_role_group_ids.user_role_ids.ids), - ('user_role_ids', 'in', button_id.users_role_group_ids.user_role_ids.ids), - ]) - if record.env.user.employee_id.id in employee_ids.ids: + continue + if current_user_role_id in allowed_role_ids: record.state = button_id.node_id.node_name return res