向 Odoo 12 中的特定组显示共享按钮
Show the share button to a specific group in Odoo 12
如果用户有一个特定的组,我正在尝试显示一个共享按钮,该按钮似乎是一个启动 ir.actions.act_window[=13 的操作=]
我尝试使用名称通过 XPath 找到它,但似乎由于按钮的性质,名称会根据环境而变化(在其他环境中名称可能会有所不同,例如 123 或 124 等等)
该按钮使用以下操作外部 ID portal.portal_share_action
启动一个 window 操作
我尝试在 XML 文件中使用引用操作 ID 的组属性,该文件是我构建的自定义项目模块的一部分,代码如下:
<record model="ir.actions.act_window" id="portal.portal_share_action">
<field name="groups" eval="[(6,0,[ref('rw_project.group_project_rw_base_user')])]"/>
</record>
即使用户没有分配组,该按钮仍会显示
编辑:
按钮位于项目表单中,xml如下:
<header>
<button name="132" string="Share" type="action" class="oe_highlight oe_read_only"/>
</header>
因为你说:
names can vary to be like 123 or 124 and so on
我想您尝试覆盖客户发票中的 Add credit note
这样的按钮:
<button name="%(action_account_invoice_refund)d" type='action' string='Add Credit Note' groups="account.group_account_invoice" attrs="{'invisible': ['|',('type', '=', 'out_refund'), ('state', 'not in', ('open','in_payment','paid'))]}"/>
这是一个动作类型的按钮,要覆盖它,您可以使用它的名称,但使用外部 ID(添加模块名称)。
示例:
<record id="invoice_form" model="ir.ui.view">
<field name="name">account.invoice.form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<button name='%(account.action_account_invoice_refund)d' position="attributes">
<attribute name="groups"></attribute>
</button>
</field>
</record>
如果您尝试设置允许 view/use 共享文档操作的群组,您需要使用 groups_id
字段。他们使用购买模块中的 groups_id
字段来限制对购买用户的访问,如下所示:
<field name="groups_id" eval="[(4, ref('purchase.group_purchase_user'))]"/>
如果您尝试覆盖的共享按钮是 drop-down 按钮,例如销售订单、采购订单或发票中的所有服务器操作,则没有可用的选项来限制对组的访问,但是您可以在 ir.actions.server
模型中添加 groups_id
字段,然后将其用于 XML 定义。
要实现你可以查看我之前的回答,How to give user groups(XML) in the model ir.actions.server Odoo 12?
编辑:覆盖项目表单中的共享按钮操作 header
<record id="edit_project" model="ir.ui.view">
<field name="name">project.project.form</field>
<field name="model">project.project</field>
<field name="inherit_id" ref="project.edit_project"/>
<field name="arch" type="xml">
<button name="%(portal.portal_share_action)d" position="attributes">
<attribute name="groups">[Group external identifier]</attribute>
</button>
</field>
</record>
如果用户有一个特定的组,我正在尝试显示一个共享按钮,该按钮似乎是一个启动 ir.actions.act_window[=13 的操作=]
我尝试使用名称通过 XPath 找到它,但似乎由于按钮的性质,名称会根据环境而变化(在其他环境中名称可能会有所不同,例如 123 或 124 等等)
该按钮使用以下操作外部 ID portal.portal_share_action
启动一个 window 操作我尝试在 XML 文件中使用引用操作 ID 的组属性,该文件是我构建的自定义项目模块的一部分,代码如下:
<record model="ir.actions.act_window" id="portal.portal_share_action">
<field name="groups" eval="[(6,0,[ref('rw_project.group_project_rw_base_user')])]"/>
</record>
即使用户没有分配组,该按钮仍会显示
编辑:
按钮位于项目表单中,xml如下:
<header>
<button name="132" string="Share" type="action" class="oe_highlight oe_read_only"/>
</header>
因为你说:
names can vary to be like 123 or 124 and so on
我想您尝试覆盖客户发票中的 Add credit note
这样的按钮:
<button name="%(action_account_invoice_refund)d" type='action' string='Add Credit Note' groups="account.group_account_invoice" attrs="{'invisible': ['|',('type', '=', 'out_refund'), ('state', 'not in', ('open','in_payment','paid'))]}"/>
这是一个动作类型的按钮,要覆盖它,您可以使用它的名称,但使用外部 ID(添加模块名称)。
示例:
<record id="invoice_form" model="ir.ui.view">
<field name="name">account.invoice.form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<button name='%(account.action_account_invoice_refund)d' position="attributes">
<attribute name="groups"></attribute>
</button>
</field>
</record>
如果您尝试设置允许 view/use 共享文档操作的群组,您需要使用 groups_id
字段。他们使用购买模块中的 groups_id
字段来限制对购买用户的访问,如下所示:
<field name="groups_id" eval="[(4, ref('purchase.group_purchase_user'))]"/>
如果您尝试覆盖的共享按钮是 drop-down 按钮,例如销售订单、采购订单或发票中的所有服务器操作,则没有可用的选项来限制对组的访问,但是您可以在 ir.actions.server
模型中添加 groups_id
字段,然后将其用于 XML 定义。
要实现你可以查看我之前的回答,How to give user groups(XML) in the model ir.actions.server Odoo 12?
编辑:覆盖项目表单中的共享按钮操作 header
<record id="edit_project" model="ir.ui.view">
<field name="name">project.project.form</field>
<field name="model">project.project</field>
<field name="inherit_id" ref="project.edit_project"/>
<field name="arch" type="xml">
<button name="%(portal.portal_share_action)d" position="attributes">
<attribute name="groups">[Group external identifier]</attribute>
</button>
</field>
</record>