有没有办法覆盖 openerp 的默认视图,开发一个模块而不是从设置/自定义/用户界面/视图手动执行...?
我们正在使用 OpenERP 并自定义了许多默认视图(项目列表、发票列表、发票搜索等),从列表和搜索过滤器/组中添加和隐藏字段,我们正在从 Web 客户端逐个视图手动查看。有没有办法开发一个模块,我可以为我想要自定义的所有视图编写 xml,并且当我安装该模块时,所有视图(以及窗口操作)都会更新?
有没有办法覆盖 openerp 的默认视图,开发一个模块而不是从设置/自定义/用户界面/视图手动执行...?
我们正在使用 OpenERP 并自定义了许多默认视图(项目列表、发票列表、发票搜索等),从列表和搜索过滤器/组中添加和隐藏字段,我们正在从 Web 客户端逐个视图手动查看。有没有办法开发一个模块,我可以为我想要自定义的所有视图编写 xml,并且当我安装该模块时,所有视图(以及窗口操作)都会更新?
您可以使用视图继承来自定义使用 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>
当然有可能(这样做是个好主意。)首先阅读视图和视图继承的基础知识
__init__.py
[python module descriptor] __openerp__.py
[OpenERP Module Descriptor]__openerp__.py
.
And update your databse with your new module.