From 5e55f03b0a5544de7d1dc7f2c2cb787a67a440be 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: Wed, 21 Jan 2026 12:19:47 +0800 Subject: [PATCH] =?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/__manifest__.py | 2 +- soong_workflow/models/soong_workflow_link.py | 5 ++++ .../models/soong_workflow_record.py | 24 +++++++++++-------- soong_workflow/security/ir.model.access.csv | 5 ++-- .../views/soong_workflow_record.xml | 5 ++-- soong_workflow/wizard/__init__.py | 1 + soong_workflow/wizard/change_node_wizard.py | 22 +++++++++++++++++ .../change_node_wizard_views.xml} | 3 ++- 8 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 soong_workflow/wizard/change_node_wizard.py rename soong_workflow/{views/view_change_node_wizard.xml => wizard/change_node_wizard_views.xml} (88%) diff --git a/soong_workflow/__manifest__.py b/soong_workflow/__manifest__.py index 47431aae0..2914b335a 100644 --- a/soong_workflow/__manifest__.py +++ b/soong_workflow/__manifest__.py @@ -30,7 +30,7 @@ "views/soong_workflow_inspector_views.xml", "views/soong_workflow_log_views.xml", "views/soong_workflow_record_copy_views.xml", - "views/view_change_node_wizard.xml", + "wizard/change_node_wizard_views.xml", "wizard/soong_bounced_wizard_views.xml", "wizard/soong_workflow_comment_wizard_view.xml", "wizard/soong_workflow_apostille_wizard_view.xml", diff --git a/soong_workflow/models/soong_workflow_link.py b/soong_workflow/models/soong_workflow_link.py index c275a4aec..64bc8fe1d 100644 --- a/soong_workflow/models/soong_workflow_link.py +++ b/soong_workflow/models/soong_workflow_link.py @@ -76,3 +76,8 @@ class SoongWorkflowLink(models.Model): if rec.state == self.node_from.node_name: rec.state = self.node_to.node_name return True + +class ChangeNode(models.Model): + _name = "change.node" + + name = fields.Char(string="Name") diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index 381023234..c7f26e12b 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -157,24 +157,28 @@ class SoongWorkflowRecord(models.Model): } } - def action_open_change_node_wizard(self): + def change_node_wizard(self): self.ensure_one() - view = self.env.ref('soong_workflow.view_change_node_wizard_form') + record_id = self.env[self.res_model].search([('id', '=', self.res_id)]) + node_ids = self.env["soong.workflow.node"].search([('workflow_id', '=', record_id.workflow_id.id)]) + if record_id: + state_list = [i.node_name for i in node_ids.sorted('sequence')] + for name in state_list: + self.env['change.node'].create({ + 'name': name + }) return { 'type': 'ir.actions.act_window', 'name': _('更改当前节点'), - 'res_model': 'soong.workflow.record', - 'res_id': self.id, + 'res_model': 'change.node.wizard', 'view_mode': 'form', - 'view_id': view.id, 'target': 'new', + 'context':{ + 'default_res_model': self.res_model, + 'default_res_id': self.res_id, + } } - def action_confirm(self): - """Close the popup; keep logic minimal as requested.""" - self.ensure_one() - return {'type': 'ir.actions.act_window_close'} - def _get_valid_employee_for_user(self): user = self.env.user employee = user.employee_ids diff --git a/soong_workflow/security/ir.model.access.csv b/soong_workflow/security/ir.model.access.csv index 9a3e80499..57a6e20f7 100644 --- a/soong_workflow/security/ir.model.access.csv +++ b/soong_workflow/security/ir.model.access.csv @@ -51,7 +51,8 @@ access_soong_workflow_line,soong_workflow_line,model_soong_workflow_line,soong_w access_project_project_line,project_project_line,model_project_project_line,soong_workflow.group_soong_workflow_user,1,1,1,1 access_soong_bounced_wizard,soong_bounced_wizard,model_soong_bounced_wizard,base.group_user,1,1,1,1 access_workflow_line_wizard,workflow_line_wizard,model_workflow_line_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 -access_change_node_wizard,change_node_wizard,model_change_node_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 access_change_opinions_wizard,change_opinions_wizard,model_change_opinions_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 access_soong_workflow_log2_wizard,soong_workflow_log2_wizard,model_soong_workflow_log2_wizard,soong_workflow.group_soong_workflow_user,1,1,1,1 -access_soong_workflow_log2_line,soong_workflow_log2_line,model_soong_workflow_log2_line,soong_workflow.group_soong_workflow_user,1,1,1,1 \ No newline at end of file +access_soong_workflow_log2_line,soong_workflow_log2_line,model_soong_workflow_log2_line,soong_workflow.group_soong_workflow_user,1,1,1,1 +access_change_node,change_node,model_change_node,soong_workflow.group_soong_workflow_user,1,1,1,1 +access_change_node_wizard,change_node_wizard,model_change_node_wizard,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index 3449eec7a..aaf8aaa46 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -159,15 +159,16 @@ -