添加功能
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
@@ -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>
|
||||
|
||||
@@ -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
-1
@@ -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>
|
||||
Reference in New Issue
Block a user