如何覆盖 act_stock_return_picking 按钮?在 Odoo 9
How can I override act_stock_return_picking button? In Odoo 9
我想覆盖 "Reverse" 选股按钮,使其仅对 stock.group_stock_manager 可见。
我使用了与往常相同的方法来覆盖按钮:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_picking_form_extend" model="ir.ui.view">
<field name="name">stock.picking.form.extend</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="/form/header/button[@name='%(act_stock_return_picking)d']" position="replace">
<button name="%(act_stock_return_picking)d" string="Reverse" states="done" type="action" groups="stock.group_stock_manager"/>
</xpath>
</field>
</record>
</data>
</openerp>
但是我得到一个错误。它说元素不能位于父视图中。
我在父视图中有这个:
<button name="%(act_stock_return_picking)d" string="Reverse" states="done" type="action" groups="base.group_user"/>
注意: 如果我覆盖其他按钮(没有 '%' 和 'd' 字符)它工作正常。
我做错了什么?
当你有%(xml_id)d
时,这意味着Odoo将在数据库中搜索那个XML ID(一个string
)的ID并用PostgreSQL替换它ID(一个integer
)。因此,对于每个 XML ID,如果您尚未在模块中声明它,则必须指定声明它的模块。
尝试将创建源按钮的模块名称写在操作名称之前,如果您只是修改 groups
,请不要替换整个按钮,请使用 attributes
相反,像这样:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_picking_form_extend" model="ir.ui.view">
<field name="name">stock.picking.form.extend</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="/form/header/button[@name='%(stock.act_stock_return_picking)d']" position="attributes">
<attribute name="groups">stock.group_stock_manager</attribute>
</xpath>
</field>
</record>
</data>
</openerp>
我想覆盖 "Reverse" 选股按钮,使其仅对 stock.group_stock_manager 可见。
我使用了与往常相同的方法来覆盖按钮:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_picking_form_extend" model="ir.ui.view">
<field name="name">stock.picking.form.extend</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="/form/header/button[@name='%(act_stock_return_picking)d']" position="replace">
<button name="%(act_stock_return_picking)d" string="Reverse" states="done" type="action" groups="stock.group_stock_manager"/>
</xpath>
</field>
</record>
</data>
</openerp>
但是我得到一个错误。它说元素不能位于父视图中。
我在父视图中有这个:
<button name="%(act_stock_return_picking)d" string="Reverse" states="done" type="action" groups="base.group_user"/>
注意: 如果我覆盖其他按钮(没有 '%' 和 'd' 字符)它工作正常。
我做错了什么?
当你有%(xml_id)d
时,这意味着Odoo将在数据库中搜索那个XML ID(一个string
)的ID并用PostgreSQL替换它ID(一个integer
)。因此,对于每个 XML ID,如果您尚未在模块中声明它,则必须指定声明它的模块。
尝试将创建源按钮的模块名称写在操作名称之前,如果您只是修改 groups
,请不要替换整个按钮,请使用 attributes
相反,像这样:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_picking_form_extend" model="ir.ui.view">
<field name="name">stock.picking.form.extend</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="/form/header/button[@name='%(stock.act_stock_return_picking)d']" position="attributes">
<attribute name="groups">stock.group_stock_manager</attribute>
</xpath>
</field>
</record>
</data>
</openerp>