diff --git a/soong_workflow/models/soong_workflow.py b/soong_workflow/models/soong_workflow.py index 9c8729a74..b5cf7f736 100644 --- a/soong_workflow/models/soong_workflow.py +++ b/soong_workflow/models/soong_workflow.py @@ -51,7 +51,7 @@ class SoongWorkflow(models.Model): is_enable_return_button = fields.Boolean(string="是否启用收回", default=True) is_enable_transmitted_button = fields.Boolean(string="是否启用转交", default=True) approvals_group_id = fields.Many2one('soong.approval.group', string="审批分组") - user_role_ids = fields.Many2many('soong.user.role', string="角色", store=True, + user_role_ids = fields.Many2many('soong.user.role', string="授权范围", store=True, default=lambda self: [(6, 0, [self.env.ref('soong_workflow.soong_user_role_workflow_admin').id])], domain=[('user_type', '!=', 'lv_role')]) def copy(self, default=None): diff --git a/soong_workflow/models/soong_workflow_node.py b/soong_workflow/models/soong_workflow_node.py index 3733a9e30..f44189ef8 100644 --- a/soong_workflow/models/soong_workflow_node.py +++ b/soong_workflow/models/soong_workflow_node.py @@ -98,7 +98,7 @@ class SoongWorkflowNode(models.Model): record.button_ids = [ (0, 0, { "name": _("加签"), - "workflow_id": record.workflow_id, + # "workflow_id": record.workflow_id.ids[0] if record.workflow_id.ids else None, "node_id": record.id, "sequence": sequence + 1, "action_type": "apostille", @@ -106,7 +106,7 @@ class SoongWorkflowNode(models.Model): }), (0, 0, { "name": _("加签确认"), - "workflow_id": record.workflow_id, + # "workflow_id": record.workflow_id.ids[0] if record.workflow_id.ids else None, "node_id": record.id, "sequence": sequence + 2, "action_type": "apostille", @@ -127,7 +127,7 @@ class SoongWorkflowNode(models.Model): record.button_ids = [ (0, 0, { "name": _("结束"), - "workflow_id": record.workflow_id, + # "workflow_id": record.workflow_id.ids[0] if record.workflow_id.ids else None, "node_id": record.id, "sequence": sequence + 1, "action_type": "end", @@ -140,6 +140,19 @@ class SoongWorkflowNode(models.Model): remove_ids = record.button_ids.filtered(lambda r: r.name in ["结束"]) record.button_ids = [(3, remove_id.id) for remove_id in remove_ids] + def btn_role_sync(self): + for record in self: + now_btn = record.button_ids.filtered(lambda r: r.name in ["转交"]) + for btn in now_btn: + other_btn = record.button_ids.filtered(lambda r: r.name not in ["转交"]) + other_btn.write({ + "btn_hide": btn.btn_hide, + "review_type": btn.review_type, + "reviewer_id": btn.reviewer_id.id, + "reviewer_group_id": btn.reviewer_group_id.id, + "users_role_id": btn.users_role_id.id + }) + @api.model_create_multi def create(self, values): @@ -375,6 +388,8 @@ class SoongWorkflowNodeButton(models.Model): "soong.workflow", string="Workflow Ref.", required=True, + store=True, + related="node_id.workflow_id", ondelete="cascade", ) invisible_expression_model = fields.Char(related="workflow_id.model_id.model") diff --git a/soong_workflow/views/soong_workflow_node_views.xml b/soong_workflow/views/soong_workflow_node_views.xml index fc762866a..f94478a9d 100644 --- a/soong_workflow/views/soong_workflow_node_views.xml +++ b/soong_workflow/views/soong_workflow_node_views.xml @@ -42,6 +42,10 @@ +