同一模型 odoo 版本 8 的多个树视图

multiple tree views for same model odoo version 8

我有问题! 好吧,我一直在尝试继承模型 product.template 并创建一个新的菜单项和操作 window 以调用一个新的独立树视图
但是我的新树视图正在影响旧视图!这是我的代码!

<?xml version="1.0"?>
<openerp>
 <data>
  <record id="new_view_tree_modif_product" model="ir.ui.view">
    <field name="name">new_view_tree_modif_product</field>
    <field name="model">product.template</field>
    <field name="arch" type="xml">
      <tree editable="bottom" create="0" colors="red:inf_marge_min==True">
          <field name="name" string="Nom" readonly="1"/>
          <field name="standard_price" string="Prix de revient" readonly="1"/>
          <field name="marge" string="Marge"/>
          <field name="list_price" string="Prix de vente"/>
          <field name="inf_marge_min" invisible="1"/>
        </tree>
    </field>
  </record>
  <act_window id="action_new_view_product"
              name="Etude de prix"
              res_model="product.template"
              view_mode="tree" />
  <menuitem id="menu_prix_modif_product"
            name="Prix"
            parent="base.menu_product"
            sequence="9"
            action="action_new_view_product" />
  <record id="tree_id" model="ir.actions.act_window.view">
    <field eval="3" name="sequence"/>
    <field name="view_mode">tree</field>
    <field name="view_id" ref="new_view_tree_modif_product"/>
    <field name="act_window_id" ref="action_new_view_product"/>
  </record>
</data>

好吧,它会影响默认的树视图 我怎样才能在不影响旧视图的情况下调用我的树视图 谢谢

指定视图类型和优先级。

<field name="type">tree</field>
<field name="priority" eval="20"/>

视图的默认优先级为 16。较低的值表示较高的优先级,反之亦然。只需将您的视图设置为低于原始视图的优先级,除非您明确指定,否则 Odoo 将不会优先使用它。

有关观看优先级的简要信息:https://www.odoo.com/documentation/8.0/reference/views.html

好吧,为了实现这一点,我必须创建一个主要动作,为新视图重新组合两个动作:

<record id="action_1" model="ir.actions.act_window">
   <field name="name">new view</field>                                         
   <field name="res_model">model.name</field>                                  
   <field name="view_type">form</field>                                        
   <field name="view_mode">tree,form</field>                                   
   <field eval="False" name="view_id"/>                                        
</record>

所以这是主要操作,现在我们应该为每个视图创建操作: 新树视图的操作 1

<record id="action_new_tree" model="ir.actions.act_window.view">     
    <field eval="1" name="sequence"/>  
    <field name="view_mode">tree</field>  
    <field name="view_id" ref="external id of your new tree view"/>
    <field name="act_window_id" ref="action_1"/>
</record>

现在我们为我们的新树视图做了一个动作,link它是第一个动作,我们应该对表单做同样的事情

<record id="action_new_form" model="ir.actions.act_window.view">     
    <field eval="1" name="sequence"/>  
    <field name="view_mode">form</field>  
    <field name="view_id" ref="external id of your new form view"/>
    <field name="act_window_id" ref="action_1"/>
</record>

完美,我们现在只需要为第一个操作 (action1) 创建一个菜单项

<menuitem id="id_of_ur_new_menu"  
 name="new form and tree view for an existing model"               
 parent="parent.menu "               
 action="action_1"/>

将“primary”这一行添加到您的代码中,这样它就不会影响默认的树视图。

<record id="tree_id" model="ir.actions.act_window.view">
    <field eval="3" name="sequence"/>
    <field name="view_mode">tree</field>
    <field name="view_id" ref="new_view_tree_modif_product"/>
    <field name="mode">primary</field>
    <field name="act_window_id" ref="action_new_view_product"/>