Kanban视图的继承

来自Odoo V
跳转至: 导航搜索

使用看板视图和报表中使用的模板扩展了使用其他视图的常规技术,例如使用XPath表达式。更多的细节见第3章,继承-扩展现有的应用程序。

一个常见的情况是使用<field>元素作为选择器,然后在它们之前或之后添加其他元素。在看板视图的情况下,同一字段可以不止一次声明,例如,模板前一次,再在模板内声明一次。这里选择器将匹配第一个字段元素,并且不会在模板中添加我们的修改。

为做到这点,我们需要使用XPath表达式来确保模板内的字段是匹配的。例如:

<record id="res_partner_kanban_inherit" model="ir.ui.view">
<field name="name">Contact Kanban modification</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.res_partner_kanban_view" 
/>
<field name="arch" type="xml"><xpath expr="//t[@t-name='kanban- box']//field[@name='display_name']"       position="before"><span>Name:</span>
</xpath>
</field>
</record>

在上面的例子中,XPath在<t tname="kanban-box">中查找<field name="display_name">元素。这将排除<templates>节之外的同一字段元素。

对于这些更复杂的XPath表达式,我们可以使用一些命令行工具来查看正确的语法。xmllint命令行实用程序可能已经在你的Linux系统中使用了,它有一个—Xpath选项来执行XML文件的查询。

看提供更好的输出的另一种选择,是XPath命令从libxml-xpath-perl Debian/Ubuntu package:

$ sudo apt-get install libxml-xpath-perl 
$ xpath -e "//record[@id='res_partner_kanban_view']" -e 
"//field[@name='display_name']]" /path/to/*.xml