Treeview Odoo层次结构视图打开窗体
我为资产创建了一个层次结构视图(父-子视图),现在当我单击列表中的某个项目时,我想打开该项目的表单视图。下面的代码只会打开一个新的表单视图,有什么想法吗Treeview Odoo层次结构视图打开窗体,treeview,openerp,hierarchy,odoo-9,formview,Treeview,Openerp,Hierarchy,Odoo 9,Formview,我为资产创建了一个层次结构视图(父-子视图),现在当我单击列表中的某个项目时,我想打开该项目的表单视图。下面的代码只会打开一个新的表单视图,有什么想法吗 资产 ir.actions.act\u窗口 资产 树 树 [('parent_id','=',False)] asset.asset.tree 资产 儿童身份证 资产 ir.actions.act\u窗口 资产 类型 看板表格 资产 卸下: <record id="asset_form" model="ir.actions.act_w
资产
ir.actions.act\u窗口
资产
树
树
[('parent_id','=',False)]
asset.asset.tree
资产
儿童身份证
资产
ir.actions.act\u窗口
资产
类型
看板表格
资产
卸下:
<record id="asset_form" model="ir.actions.act_window">
<field name="name">Assets</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">asset.asset</field>
<field name="view_type">form</field>
<field name="view_mode">form,kanban</field>
</record>
资产
ir.actions.act\u窗口
资产
类型
看板表格
你为什么需要这样做
此外,请更改以下选项:
<record model="ir.actions.act_window" id="action_assets_hierachy">
<field name="name">Assets</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">asset.asset</field>
<field name="view_type">tree</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('parent_id','=',False)]</field>
</record>
资产
ir.actions.act\u窗口
资产
树
树
[('parent_id','=',False)]
致:
资产
ir.actions.act\u窗口
资产
类型
树
[('parent_id','=',False)]
您需要某种JavaScript修改来实现这一点。web/treeview.js中有一个名为“activate”的函数,用于在单击某个项目时处理该事件。您需要像这样扩展它:
odoo.define('web.ListViewClickable', function (require) {
"use strict";
var TreeView = require('web.TreeView');
TreeView.include({
activate: function(id){
var self = this;
var result = self._super(id);
if (self.model == 'your_model'){ //Only if you want to apply this to specific model
self.do_action({
type: 'ir.actions.act_window',
res_model: self.model,
view_type: 'form',
view_mode: 'form',
res_id: id,
views: [[false, 'form']],
});
}
return result;
},
});
});
odoo.define('web.ListViewClickable', function (require) {
"use strict";
var TreeView = require('web.TreeView');
TreeView.include({
activate: function(id){
var self = this;
var result = self._super(id);
if (self.model == 'your_model'){ //Only if you want to apply this to specific model
self.do_action({
type: 'ir.actions.act_window',
res_model: self.model,
view_type: 'form',
view_mode: 'form',
res_id: id,
views: [[false, 'form']],
});
}
return result;
},
});
});