有没有办法来覆盖openerp的默认视图,开发一个模块,而不是手动从设置/定制/用户界面/视图...?通过自定义模块覆盖默认视图?
我们使用OpenERP并自定义很多默认视图(项目列表,发票清单,发票搜索等),从列表和搜索过滤器/组中添加和隐藏字段,我们正在通过Web客户端视图进行手动查看。 有没有办法开发一个模块,我可以为我想要自定义的所有视图编写xml,当我安装该模块时,所有视图(以及窗口操作)都将被更新?
有没有办法来覆盖openerp的默认视图,开发一个模块,而不是手动从设置/定制/用户界面/视图...?通过自定义模块覆盖默认视图?
我们使用OpenERP并自定义很多默认视图(项目列表,发票清单,发票搜索等),从列表和搜索过滤器/组中添加和隐藏字段,我们正在通过Web客户端视图进行手动查看。 有没有办法开发一个模块,我可以为我想要自定义的所有视图编写xml,当我安装该模块时,所有视图(以及窗口操作)都将被更新?
您可以使用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>
当然有。您可以创建自定义模块并进行安装。请参阅official docs中的基础知识。 Technical Memento也是你应该有的。
这使得在开发环境中开发和测试变得容易很多,并且之后在生产环境中进行复制和安装。
Tx为文档,非常有用。不知道这个文件存在。 – sluc23 2012-08-01 08:45:35
当然,这是可能的(这是好主意,做它。) 首先阅读的view and view inheritance
__init__.py
[python module descriptor]__openerp__.py
[OpenERP Module Descriptor]__openerp__.py
中注册您的view.xml。 并用您的新模块更新您的数据库。
感谢您的链接,对于v7它在这里https://doc.odoo.com/7.0/contribute/05_developing_modules/ – 2016-03-09 16:48:45