无法为action_invoice_cancel按钮添加sale_manager组权限求助
为发票取消按钮添加销售经理组权限
需求说明
我需要给客户发票中的action_invoice_cancel(发票取消)按钮添加权限控制,仅让sale_manager组内的用户可见该按钮。
我尝试的代码片段
<?xml version="1.0" encoding="utf-8"?> <odoo> <record id="orchid_invoice_cancel_request_inherit" model="ir.ui.view"> <field name="name">invoice_cancel_request</field> <field name="model">account.invoice</field> <field name="inherit_id" ref="account....
修正后的完整解决方案
要实现这个权限控制需求,我们可以通过视图继承给目标按钮添加groups属性,指定仅销售经理组可见。完整代码如下:
<?xml version="1.0" encoding="utf-8"?> <odoo> <!-- 继承发票表单视图,定位取消按钮 --> <record id="orchid_invoice_cancel_request_inherit" model="ir.ui.view"> <field name="name">account.invoice.cancel.button.inherit</field> <field name="model">account.invoice</field> <!-- 关联标准发票表单视图,确保引用ID正确 --> <field name="inherit_id" ref="account.invoice_form"/> <field name="arch" type="xml"> <!-- 通过按钮name属性精准定位目标按钮 --> <xpath expr="//button[@name='action_invoice_cancel']" position="attributes"> <!-- 添加权限组控制,仅销售经理组可见 --> <attribute name="groups">sales_team.group_sale_manager</attribute> </xpath> </field> </record> </odoo>
关键细节说明
- 视图引用要完整:Odoo标准发票表单视图的ID是
account.invoice_form,别漏写完整引用路径 - 精准定位按钮:用
xpath通过按钮的name属性找到action_invoice_cancel,避免影响其他按钮 - 权限组ID要正确:内置销售经理组的完整外部ID是
sales_team.group_sale_manager,直接填入groups属性即可 - 适配高版本Odoo:如果是Odoo 13及以上版本,
account.invoice模型已替换为account.move,需要把模型改成account.move,视图引用改为account.move_form,按钮名称对应为action_cancel
内容的提问来源于stack exchange,提问作者vbt
相关产品推荐
相关产品推荐

