【问题标题】:Odoo hierarchy view open formOdoo 层次结构视图打开表单
【发布时间】:2017-05-16 10:20:57
【问题描述】:

我为资产创建了一个层次结构视图(父子视图),现在当我单击列表中的一个项目时,我想打开该项目的表单视图。下面的代码只打开一个新的表单视图,有什么想法吗?

<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>

<record id="assets_tree_view_inherit" model="ir.ui.view">
        <field name="name">asset.asset.tree</field> 
        <field name="model">asset.asset</field> 
        <field name="inherit_id" ref="asset.assets_tree_view"/>
        <field name="field_parent">child_ids</field> 
        <field name="arch" type="xml"> 
            <xpath expr="//tree" position="replace">
                <tree toolbar="1"> 
                    <field icon="icon" name="asset_number"/> 
                    <field name="display_name"/>
                    <field name="name"/> 
                    <field name="user_id"/>
                </tree> 
            </xpath>
        </field> 
</record>

 <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>

<record id="ir_asset_form_open" model="ir.values">
        <field eval="'tree_but_open'" name="key2"/>
        <field eval="'asset.asset'" name="model"/>
        <field name="name">Assets</field>
        <field eval="'ir.actions.act_window,%d'%asset_form" name="value"/>
</record>

<menuitem name="Asset Hierarchy" id="asset_hierarchy" parent="asset.menu_maintenance_assets" action="action_assets_hierachy"/>

【问题讨论】:

    标签: treeview openerp hierarchy odoo-9 formview


    【解决方案1】:

    您需要对 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;
        },
    });
    });
    

    【讨论】:

      【解决方案2】:

      删除:

       <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>
      

      您为什么需要此操作?

      另外,更改:

      <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>
      

      到:

      <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">form</field> 
              <field name="view_mode">tree,form</field>
              <field name="domain">[('parent_id','=',False)]</field> 
      
      </record>
      

      【讨论】:

        猜你喜欢
        • 2021-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-28
        • 1970-01-01
        • 1970-01-01
        • 2017-07-11
        相关资源
        最近更新 更多