自定义模块覆盖默认视图?

时间:2012-07-31 09:24:08

标签: openerp

有没有办法覆盖openerp的默认视图,开发模块而不是手动从Settings / Customization / User Interface / Views ...?

我们正在使用OpenERP并自定义大量默认视图(项目列表,发票清单,发票搜索等),从列表和搜索过滤器/组中添加和隐藏字段,我们正在通过Web客户端的视图手动查看。 有没有办法开发一个模块,我可以为我想要自定义的所有视图编写xml,当我安装该模块时,所有视图(以及窗口操作)都将被更新?

3 个答案:

答案 0 :(得分:6)

您可以使用View Inheritance使用XML文件自定义任何视图。

使用继承,您可以向任何视图添加,删除和替换元素。您还可以定义新的完整视图以替换默认值而不是继承。只需使用XML文件创建一个新模块,该文件可自定义或替换当前视图并加载该模块。模块文件夹应仅包含__init__.py__openerp__.py和XML文件。

以下是从产品视图中删除EAN13字段的简单示例。


__init__.py 空文件


<强> __openerp__.py

{
    "name" : "View Customization Test",
    "version" : "1.0",
    "category" : "Generic Modules/Inventory Control",
    'depends' : ['product',],
    "update_xml" : ["product.xml",],
    "installable": True,
    "active": True
}

<强> product.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>
    <record model="ir.ui.view" id="view_product_form_custom">
      <field name="name">product.form.inherit2</field>
      <field name="model">product.product</field>
      <field name="inherit_id" ref="product.product_normal_form_view" />
      <field name="arch" type="xml">
        <field name="ean13" position="replace" />
      </field>
    </record>
  </data>
</openerp>

答案 1 :(得分:0)

当然有。您可以创建自定义模块并进行安装。请参阅official docs中的基础知识。 Technical Memento也是你应该掌握的东西。

这使得在开发环境中开发和测试变得更加容易,之后在生产环境中进行复制和安装。

答案 2 :(得分:0)

当然有可能(并且最好这样做。) 首先阅读view and view inheritance

的基础知识
  • 然后只需在你的插件下创建一个文件夹
  • 添加__init__.py [python module descriptor]
  • 添加__openerp__.py [OpenERP Module Descriptor]
  • 使用现有视图的XML标识符创建一个xml文件并使用所需视图,并在__openerp__.py中注册view.xml。 并使用新模块更新数据库。