From 8631515c9a67229d74ccdf9c7fc3e97c998b570d 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: Fri, 28 Aug 2026 17:12:29 +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 --- .../models/soong_workflow_entrust.py | 2 +- .../models/soong_workflow_record.py | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/soong_workflow/models/soong_workflow_entrust.py b/soong_workflow/models/soong_workflow_entrust.py index 8473be4c7..b5a54b41a 100644 --- a/soong_workflow/models/soong_workflow_entrust.py +++ b/soong_workflow/models/soong_workflow_entrust.py @@ -40,7 +40,7 @@ class SoongWorkflowEntrust(models.Model): is_expiration_date = fields.Boolean(string="一直有效", default=True) start_date = fields.Date(string="生效日期", copy=False, default=fields.Date.today()) end_date = fields.Date(string="失效日期", copy=False) - is_enable = fields.Boolean(string="是否启用", compute="compute_is_enable", store=True) + is_enable = fields.Boolean(string="是否启用", compute="compute_is_enable") entrust_notice = fields.Boolean(string="发送事务提醒消息", default=True) workflow_data = fields.Char(string="委托流程记录方便到期删除") diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index ca74ab65a..8450a94b9 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -363,6 +363,31 @@ class SoongWorkflowRecord(models.Model): pair_ids.append(rec.id) return pair_ids + def _circulation_pair_ids(records): + pair_ids = [] + by_model = {} + for rec in records: + by_model.setdefault(rec.res_model, []).append(rec) + for model_name, recs in by_model.items(): + delegate_uid = self._entrust_delegate_uid(model_name, current_uid) + effective_uids = [current_uid] + if delegate_uid: + effective_uids.append(delegate_uid) + res_ids = [r.res_id for r in recs] + log2_domain = [ + ('model', '=', model_name), + ('res_id', 'in', res_ids), + ('done_by', 'in', effective_uids), + ('approval_state', 'in', ['0', '1']) + ] + valid_pairs = set() + for log2 in self.env['soong.workflow.log2'].search(log2_domain): + valid_pairs.add((log2.model, log2.res_id)) + for rec in recs: + if (rec.res_model, rec.res_id) in valid_pairs: + pair_ids.append(rec.id) + return pair_ids + if (operator == '=' and value) or (operator == '!=' and not value): condition1_ids = candidate_records.filtered( lambda r: r.approve_state == 'start' From f17201e78172cd85c34228c29508a4c20360d4d2 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: Fri, 28 Aug 2026 17:13:37 +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 --- .../models/soong_workflow_record.py | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 8450a94b9..ca74ab65a 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -363,31 +363,6 @@ class SoongWorkflowRecord(models.Model): pair_ids.append(rec.id) return pair_ids - def _circulation_pair_ids(records): - pair_ids = [] - by_model = {} - for rec in records: - by_model.setdefault(rec.res_model, []).append(rec) - for model_name, recs in by_model.items(): - delegate_uid = self._entrust_delegate_uid(model_name, current_uid) - effective_uids = [current_uid] - if delegate_uid: - effective_uids.append(delegate_uid) - res_ids = [r.res_id for r in recs] - log2_domain = [ - ('model', '=', model_name), - ('res_id', 'in', res_ids), - ('done_by', 'in', effective_uids), - ('approval_state', 'in', ['0', '1']) - ] - valid_pairs = set() - for log2 in self.env['soong.workflow.log2'].search(log2_domain): - valid_pairs.add((log2.model, log2.res_id)) - for rec in recs: - if (rec.res_model, rec.res_id) in valid_pairs: - pair_ids.append(rec.id) - return pair_ids - if (operator == '=' and value) or (operator == '!=' and not value): condition1_ids = candidate_records.filtered( lambda r: r.approve_state == 'start'