5

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

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

4

3 回答 3

6

您可以使用视图继承来自定义使用 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>
于 2012-07-31T09:53:14.597 回答
0

当然有。您可以创建自定义模块并安装它。请参阅官方文档中的基础知识。技术纪念品也是您手头应该有的东西。

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

于 2012-07-31T09:47:16.333 回答
0

当然有可能(这样做是个好主意。)首先阅读视图和视图继承的基础知识

  • then simply create a folder under your addons
  • add a __init__.py [python module descriptor]
  • Add __openerp__.py [OpenERP Module Descriptor]
  • Create an xml file and inheirt the required view with the XML Identifier of the existing view and register your view.xml in __openerp__.py. And update your databse with your new module.
于 2012-07-31T13:24:44.210 回答