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;
    },
});
});