2012-07-31 59 views
5

有没有办法来覆盖openerp的默认视图,开发一个模块,而不是手动从设置/定制/用户界面/视图...?通过自定义模块覆盖默认视图?

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

回答

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

感谢您的链接,对于v7它在这里https://doc.odoo.com/7.0/contribute/05_developing_modules/ – 2016-03-09 16:48:45

0

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

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

+0

Tx为文档,非常有用。不知道这个文件存在。 – sluc23 2012-08-01 08:45:35

0

当然,这是可能的(这是好主意,做它。) 首先阅读的view and view inheritance

  • 基本面再简单说下你的插件创建一个文件夹
  • 加a __init__.py [python module descriptor]
  • __openerp__.py [OpenERP Module Descriptor]
  • 创建一个xml文件并使用现有视图的XML标识符创建所需的视图,并在__openerp__.py中注册您的view.xml。 并用您的新模块更新您的数据库。