From 417a6564d6edfa1b574693a03630de99a8abcd4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Wed, 29 Jul 2026 15:31:30 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=85=AC=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soong_workflow/models/soong_workflow_mixin.py | 33 ++++++++++--------- yuthon_notice/views/yuthon_notice_views.xml | 3 +- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index 9427e08b1..1397ef4ff 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -1422,22 +1422,6 @@ class SoongWorkflowMixin(models.AbstractModel): approval_el.set("invisible", "1") header_el.append(approval_el) - if header_el: - # 彩带 - ribbon_pass = etree.Element("widget") - ribbon_pass.set("name", "web_ribbon") - ribbon_pass.set("title", "通过") - ribbon_pass.set("bg_color", "text-bg-success") - ribbon_pass.set("invisible", "approval_result != 'pass'") - header_el.insert(0, ribbon_pass) - - ribbon_fail = etree.Element("widget") - ribbon_fail.set("name", "web_ribbon") - ribbon_fail.set("title", "不通过") - ribbon_fail.set("bg_color", "text-bg-danger") - ribbon_fail.set("invisible", "approval_result != 'fail'") - header_el.insert(0, ribbon_fail) - is_transfer_el = etree.Element("field") is_transfer_el.set("name", "is_show_transfer") is_transfer_el.set("invisible", "1") @@ -1474,6 +1458,23 @@ class SoongWorkflowMixin(models.AbstractModel): if visible_seq: state_el.set("statusbar_visible", ",".join(visible_seq)) header_el.append(state_el) + + # 审批结果徽章(注入到 header 末尾,inline 不影响 sheet 布局,全局生效) + # 通过 → 绿色徽章,不通过 → 红色徽章,无结果时不显示 + result_badge = etree.Element("span") + result_badge.set("class", "o_approval_result ms-2") + result_badge.set("invisible", "approval_result not in ('pass', 'fail')") + # 通过:绿色徽章 + pass_badge = etree.SubElement(result_badge, "span") + pass_badge.set("class", "badge text-bg-success") + pass_badge.set("invisible", "approval_result != 'pass'") + pass_badge.text = "通过" + # 不通过:红色徽章 + fail_badge = etree.SubElement(result_badge, "span") + fail_badge.set("class", "badge text-bg-danger") + fail_badge.set("invisible", "approval_result != 'fail'") + fail_badge.text = "不通过" + header_el.append(result_badge) res["arch"] = etree.tostring(arch, encoding="unicode").replace("\t", "") return res diff --git a/yuthon_notice/views/yuthon_notice_views.xml b/yuthon_notice/views/yuthon_notice_views.xml index 1f786b793..ab6cb01c3 100644 --- a/yuthon_notice/views/yuthon_notice_views.xml +++ b/yuthon_notice/views/yuthon_notice_views.xml @@ -202,7 +202,8 @@ 通知公告管理 - [('is_company', '=', True)] + + [('is_company', '=', True), ('users_id', '=', uid)] yuthon.notice tree,form