You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:37:07