Kanban视图的继承

来自Odoo大V社-odoo中文开发手册
95102545讨论 | 贡献2017年8月7日 (一) 23:49的版本 (创建页面,内容为“使用看板视图和报表中使用的模板扩展了使用其他视图的常规技术,例如使用XPath表达式。更多的细节见第3章,继承-扩展现...”)

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

使用看板视图和报表中使用的模板扩展了使用其他视图的常规技术,例如使用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