有没有办法覆盖openerp的默认视图,开发模块而不是手动从Settings / Customization / User Interface / Views ...?
我们正在使用OpenERP并自定义大量默认视图(项目列表,发票清单,发票搜索等),从列表和搜索过滤器/组中添加和隐藏字段,我们正在通过Web客户端的视图手动查看。 有没有办法开发一个模块,我可以为我想要自定义的所有视图编写xml,当我安装该模块时,所有视图(以及窗口操作)都将被更新?
答案 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] __openerp__.py
中注册view.xml。
并使用新模块更新数据库。