添加功能

This commit is contained in:
李鹏宇
2026-01-21 12:19:47 +08:00
parent cda5efec36
commit 5e55f03b0a
8 changed files with 51 additions and 16 deletions
+1 -1
View File
@@ -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",
@@ -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")
+14 -10
View File
@@ -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
+3 -2
View File
@@ -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
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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
51 access_soong_workflow_log2_wizard access_soong_workflow_log2_line soong_workflow_log2_wizard soong_workflow_log2_line model_soong_workflow_log2_wizard model_soong_workflow_log2_line soong_workflow.group_soong_workflow_user 1 1 1 1
52 access_soong_workflow_log2_line access_change_node soong_workflow_log2_line change_node model_soong_workflow_log2_line model_change_node soong_workflow.group_soong_workflow_user 1 1 1 1
53 access_change_node_wizard change_node_wizard model_change_node_wizard base.group_user 1 1 1 1
54
55
56
57
58
@@ -159,15 +159,16 @@
<group>
<field name="text"/>
<field name="reclaim_state"/>
<button name="action_open_change_node_wizard" type="object" string="更改当前节点" class="btn-primary"/>
</group>
<!-- <button name="action_open_change_node_wizard" type="object" string="更改当前节点" class="btn-primary"/>-->
<group>
<field name="is_manager"/>
<field name="meal"/>
<field name="workflow_happen_date" string="发生日期"/>
</group>
</group>
<group>
<button name="change_node_wizard" type="object" string="更改当前节点" class="btn btn-primary button_width"/>
</group>
</form>
+1
View File
@@ -11,4 +11,5 @@ from . import workflow_line_wizard
from . import soong_bounced_wizard
from . import change_opinions_wizard
from . import soong_workflow_log2_wizard
from . import change_node_wizard
@@ -0,0 +1,22 @@
from odoo import fields, models, api
from odoo.exceptions import UserError, ValidationError
from datetime import datetime, date, time, timedelta
class ChangeNodeWizard(models.Model):
_name = 'change.node.wizard'
_description = '变更节点'
res_model = fields.Char(string="模型")
res_id = fields.Integer(string="记录ID")
change_node_id = fields.Many2one('change.node', string="变更节点")
@api.onchange('change_node_id')
def _onchange_change_node_id(self):
if self.change_node_id:
record_id = self.env[self.res_model].search([('id', '=', self.res_id)])
if record_id:
record_id.state = self.change_node_id.name
def action_confirm(self):
self.env['change.node'].search([]).unlink()
@@ -2,13 +2,14 @@
<odoo>
<record id="view_change_node_wizard_form" model="ir.ui.view">
<field name="name">change.node.wizard.form</field>
<field name="model">soong.workflow.record</field>
<field name="model">change.node.wizard</field>
<field name="arch" type="xml">
<form string="更改当前节点">
<group>
<group>
<field name="res_model"/>
<field name="res_id"/>
<field name="change_node_id"/>
</group>
</group>
<footer>