From 8d119c0d2a6a6a624a434cf4a126be2b4812f3e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Thu, 26 Sep 2024 20:07:40 +0800 Subject: [PATCH] pengyuthon --- .../models/issue_approval_decision.py | 39 +++++++++++-------- .../views/issue_approval_decision_views.xml | 14 +------ 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/yuthon_issue/models/issue_approval_decision.py b/yuthon_issue/models/issue_approval_decision.py index 021b8d105..5bb39bdda 100644 --- a/yuthon_issue/models/issue_approval_decision.py +++ b/yuthon_issue/models/issue_approval_decision.py @@ -18,19 +18,26 @@ class IssueApprovalDecision(models.Model): district_bureau = fields.Char(string='区政府、区财政局') remarks = fields.Char(string='备注') - # @api.onchange('sequence', 'decision_id') - # def _onchange_department_code(self): - # for code in self: - # if code.decision_id.sequence: - # code.sequence = code.decision_id.sequence + '.' + code.sequence - # else: - # code.sequence = code.sequence - # for child in code.child_ids: - # if code.sequence: - # if '.' in child.sequence: - # number = code.sequence + '.' + child.sequence.split('.')[-1] - # child.write({'sequence': number}) - # else: - # child.sequence = code.sequence + '.' + (child.sequence or '') - # else: - # child.sequence = child.sequence or '' + @api.onchange('sequence', 'decision_id') + def _onchange_department_code(self): + for code in self: + if code.sequence and code.decision_id: + code.sequence = code.decision_id.sequence + ('.' + code.sequence if code.sequence else '') + else: + code.sequence = code.sequence + code._update_child_sequences() + + def _update_child_sequences(self): + def recursive_update(parent, parent_sequence): + # 遍历每个子记录 + for child in parent.child_ids: + # 使用父级的 sequence 更新子级的 sequence + new_sequence = parent_sequence + ('.' + child.sequence.split('.')[-1] if child.sequence else '') + self.env['issue.approval.decision'].search([('id', '=', child.id.origin)]).write({'sequence': new_sequence}) + # 递归处理孙级 + recursive_update(child, new_sequence) + # 从当前记录开始递归更新所有子孙级别 + recursive_update(self, self.sequence) + + + diff --git a/yuthon_issue/views/issue_approval_decision_views.xml b/yuthon_issue/views/issue_approval_decision_views.xml index affa8eb55..01dfd2c00 100644 --- a/yuthon_issue/views/issue_approval_decision_views.xml +++ b/yuthon_issue/views/issue_approval_decision_views.xml @@ -33,6 +33,7 @@ + @@ -55,19 +56,6 @@ - - issue.approval.decision.form - issue.approval.decision - - - - - - - - - - 决策清单 issue.approval.decision