From 809140109b68e4f8b10e25c5dc7441b6a71bbc99 Mon Sep 17 00:00:00 2001 From: ljmwkx <1340053001@qq.com> Date: Sat, 1 Mar 2025 20:36:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=AF=E7=94=A8=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soong_workflow/models/soong_workflow_mixin.py | 22 +++++++++++-------- soong_workflow/models/soong_workflow_node.py | 3 ++- .../views/soong_workflow_node_views.xml | 22 ++++++++++++++----- 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 982efb476..183b7fae5 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -599,8 +599,7 @@ class SoongWorkflowMixin(models.AbstractModel): ) else: # Check Condition Code - btn_invisible = [] - is_review_type_invisible = False + # btn_invisible = [] is_apostille = False if button.btn_hide: if button.review_type == "individual": @@ -615,12 +614,12 @@ class SoongWorkflowMixin(models.AbstractModel): ('employee_id.user_role_ids', 'in', button.users_role_id.id)]) if self.env.user not in user_role_id: continue - # 如果是隐藏条件拼接隐藏条件 - elif button.review_type == "invisible": - if button.invisible_expression: - is_review_type_invisible = True - domain = eval(button.invisible_expression) - btn_invisible = self.sudo().env[button.workflow_id.model_id.model].search(domain).ids + # # 如果是隐藏条件拼接隐藏条件 + # elif button.review_type == "invisible": + # if button.invisible_expression: + # is_review_type_invisible = True + # domain = eval(button.invisible_expression) + # btn_invisible = self.sudo().env[button.workflow_id.model_id.model].search(domain).ids # 如果是加签确认 elif button.review_type == "apostille": is_apostille = True @@ -644,11 +643,15 @@ class SoongWorkflowMixin(models.AbstractModel): if button.is_highlight: btn_exec_action_el.set("class", "oe_highlight") + # if button.is_high_red: # btn_exec_action_el.set("style", "background-color: red !important;color: white !important;") if button.has_icon: btn_exec_action_el.set("icon", button.icon) - if is_review_type_invisible: + # 如果有隐藏条件的话,启用隐藏 + if button.is_review_invisible and button.invisible_expression: + domain = eval(button.invisible_expression) + btn_invisible = self.sudo().env[button.workflow_id.model_id.model].search(domain).ids btn_exec_action_el.set( "invisible", "not id or state != '{0}' or id not in {1}".format(node.node_name, btn_invisible) ) @@ -663,6 +666,7 @@ class SoongWorkflowMixin(models.AbstractModel): btn_exec_action_el.set( "invisible", "not id or state != '%s'" % node.node_name ) + if button.name in ["退回", "结束"]: if not self.sudo().env["soong.workflow.log"].search([("workflow_id", "=", wkf_rec.id), ("node_id", "=", node.id)]).ids: btn_exec_action_el.set("invisible", "1") diff --git a/soong_workflow/models/soong_workflow_node.py b/soong_workflow/models/soong_workflow_node.py index bf023167c..8018b9941 100644 --- a/soong_workflow/models/soong_workflow_node.py +++ b/soong_workflow/models/soong_workflow_node.py @@ -337,12 +337,13 @@ class SoongWorkflowNodeButton(models.Model): ("group", "Any user in a specific group"), ("expression", "Python Expression"), ('user_role', '角色'), - ('invisible', '隐藏条件'), + # ('invisible', '隐藏条件'), ('apostille', '加签确认'), ('end', "结束"), ('withdraw', '收回'), ], ) + is_review_invisible = fields.Boolean(string="是否隐藏", default=False) reviewer_id = fields.Many2one(comodel_name="res.users", string="Reviewer") reviewer_group_id = fields.Many2one(comodel_name="res.groups", string="Reviewer group") users_role_id = fields.Many2one(comodel_name="soong.user.role", string="主角色", diff --git a/soong_workflow/views/soong_workflow_node_views.xml b/soong_workflow/views/soong_workflow_node_views.xml index 2f8cb419f..3ad7433fe 100644 --- a/soong_workflow/views/soong_workflow_node_views.xml +++ b/soong_workflow/views/soong_workflow_node_views.xml @@ -166,6 +166,16 @@ + + + + + + + @@ -192,12 +202,12 @@ - - - + + + + + +