From 39c1336b329561052cae60e34d2a9069433df104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Tue, 10 Mar 2026 11:13:50 +0800 Subject: [PATCH 1/2] =?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 | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index c606710d4..deaca453c 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -85,6 +85,7 @@ class SoongWorkflowMixin(models.AbstractModel): is_active = fields.Boolean(string='是否允许归档', compute='_compute_is_active', store=False,) is_confirm = fields.Boolean(string="未确认", compute='_compute_is_confirm', store=False,) is_end = fields.Boolean(string="未结束", compute='_compute_is_confirm', store=False,) + is_done = fields.Boolean(string="已办", compute='_compute_is_done', store=False,) is_send = fields.Boolean(string="是否分发") def _compute_is_back(self): @@ -139,6 +140,19 @@ class SoongWorkflowMixin(models.AbstractModel): # if self.log_ids[-1].name == '归档' and self.log_ids[-1].is_active_operate == True: # self.is_active = False + def _compute_is_done(self): + for record in self: + record.is_done = False + log_ids_domain = [ + ('done_by', '=', self.env.user.id), + ('workflow_id', '=', record.workflow_id.id), + ('res_id', '=', record.id), + ] + lg1 = record.log_ids.search(log_ids_domain) + if lg1: + if lg1.approval_state == '2': + record.is_done = True + def _compute_is_confirm(self): for record in self: record.is_confirm = False @@ -1004,12 +1018,13 @@ class SoongWorkflowMixin(models.AbstractModel): id_el = etree.Element("field") id_el.set("name", "log_ids") id_el.set("invisible", "1") - invisible += " or not log_ids " + invisible += " or not log_ids or is_done" if button.name == "分发": btn_exec_action_el.set("class", "btn btn-distribute") - invisible += " or is_send" + invisible += " or is_send or is_done" if button.name == "转交": btn_exec_action_el.set("class", "btn btn-transfer") + invisible += " or is_done" if button.name == "收回": btn_exec_action_el.set("class", "btn btn-recall") id_el = etree.Element("field") @@ -1105,6 +1120,11 @@ class SoongWorkflowMixin(models.AbstractModel): send_el.set("invisible", "1") header_el.append(send_el) + done_el = etree.Element("field") + done_el.set("name", "is_done") + done_el.set("invisible", "1") + header_el.append(done_el) + if header_el is not False: state_el = etree.Element("field") state_el.set("name", "state") From f75a7bdc84043b18fcbae3f01649b29459bdf56f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Tue, 10 Mar 2026 11:14:58 +0800 Subject: [PATCH 2/2] =?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 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index deaca453c..63b0371f4 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -1105,6 +1105,11 @@ class SoongWorkflowMixin(models.AbstractModel): end_el.set("invisible", "1") header_el.append(end_el) + back_el = etree.Element("field") + back_el.set("name", "is_back") + back_el.set("invisible", "1") + header_el.append(back_el) + confirm_el = etree.Element("field") confirm_el.set("name", "is_confirm") confirm_el.set("invisible", "1")