From 8a32b77e4bd8639ab6f35b2a5adc15a8c1be61f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Tue, 10 Mar 2026 11:04:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soong_workflow/views/soong_workflow_record.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index bcc890629..5aeaf885f 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -103,8 +103,8 @@ - - + + @@ -154,8 +154,8 @@ - - + + From b48534eac053e1d8948d714b2c9d96597f6a9c1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Tue, 10 Mar 2026 11:34:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=BE=85=E5=8A=9E?= =?UTF-8?q?=E4=BA=BA=E5=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/soong_workflow_record.py | 38 +++++++++++++++++++ .../views/soong_workflow_record.xml | 14 ++++--- 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index ca8239de7..3354c239f 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -101,6 +101,13 @@ class SoongWorkflowRecord(models.Model): store=True # 存储到数据库,以便用于排序 ) + # 流程待办人员:从关联记录的log_ids和log_ids2中取出待办/办理中的审批人,逗号拼接 + pending_users = fields.Text( + string="流程待办人员", + compute='_compute_pending_users', + store=False, + ) + @api.returns('self', lambda value: value.id) def copy(self, default=None): default = default or {} @@ -116,6 +123,37 @@ class SoongWorkflowRecord(models.Model): for record in self: record.display_end_time = record.node_update_time or record.write_date2 + @api.depends('res_model', 'res_id', 'approve_state') + def _compute_pending_users(self): + for record in self: + record.pending_users = '' + # 只有审批中状态才显示流程待办人员 + if record.approve_state != 'pending': + continue + if not record.res_model or not record.res_id: + continue + try: + target = self.env[record.res_model].browse(record.res_id).exists() + if not target: + continue + names = [] + # 从log_ids中获取待办/办理中的审批人 + if hasattr(target, 'log_ids'): + for log in target.log_ids: + if log.approval_state in ('0', '1') and log.done_by and log.done_by.name: + if log.done_by.name not in names: + names.append(log.done_by.name) + # 从log_ids2中获取待办/办理中的审批人 + if hasattr(target, 'log_ids2'): + for log2 in target.log_ids2: + if log2.approval_state in ('0', '1') and log2.done_by and log2.done_by.name: + if log2.done_by.name not in names: + names.append(log2.done_by.name) + record.pending_users = ','.join(names) + except Exception as e: + _logger.warning(f"Failed to compute pending_users for record {record.id}: {e}") + record.pending_users = '' + @api.depends('res_model', 'res_id') def _compute_urgency_level(self): """从关联的业务模型中获取urgency_level值""" diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index 5aeaf885f..f1687987c 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -119,6 +119,7 @@ +