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 @@
-
-
-
+
+
+
+
+
+