如何从表单 odoo 12 中删除打印和共享操作

How to remove print and share action from a form odoo 12

您好,我正在使用 odoo 12,我想从表单中删除操作按钮

还有操作菜单中的分享:

我在继承视图中做了以下没有结果:

 <record model="ir.ui.view" id="sale_order_log_notes">
    <field name="name">sale.order.log.notes</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="arch" type="xml">

    <xpath expr="//form" position="attributes">    
        <attribute name="share">0</attribute>
        <attribute name="print">0</attribute>
    </xpath>
    </field>
</record>

报告和操作需要直接触摸,而不是通过视图。

对于报告,转到 Settings - Technical - Actions - Reports,打开你需要删除的报告,然后点击 Remove from the "Print' menu窗体右上按钮框按钮

对于动作,在Settings - Technical - Actions - Server Actions下,要删除动作,点击REMOVE CONTEXTAL ACTION按钮表格的header。请注意,无法通过这种方式删除 DeleteDuplicate 等标准操作。

Quotation / Order 操作是使用 report shortcut to ir.action.report and the Share 按钮添加的,是使用服务器操作添加的。

相应的表单视图中已经有两个按钮用于取消链接操作(如 mingtwo_h9 所述),一个名为 Remove from the 'print' menu 的按钮用于从打印下拉菜单中删除操作和 Remove Contextual Action 按钮从下拉操作菜单中删除操作,两个按钮都调用 unlink_action 方法,该方法是为 ir.actions.report and ir.actions.server 单独实现的,调用时将 binding_model_id 字段设置为 False 隐藏动作。

可以使用 function 标记调用模型上的方法。

It has two mandatory parameters model and name specifying respectively the model and the name of the method to call.

Parameters can be provided using eval (should evaluate to a sequence of parameters to call the method with) or value elements (see list values).

我们需要调用unlink_action方法并将动作记录作为参数传递

<function model="ir.actions.report" name="unlink_action"
          eval="[ref('sale.action_report_saleorder')]"/>

<function model="ir.actions.server" name="unlink_action" 
          eval="[ref('sale.model_sale_order_action_share')]"/>

也可以使用value标签传递参数(l10n_generic_coa中有例子)

<function model="ir.actions.report" name="unlink_action">
    <value eval="[ref('sale.action_report_saleorder')]"/>
</function>

<function model="ir.actions.server" name="unlink_action">
    <value eval="[ref('sale.model_sale_order_action_share')]"/>
</function>