我创建了一个模块,我添加了窗口操作,现在在另一个模块中,我想删除该窗口操作。有没有办法删除/隐藏窗口动作?
请说以下是销售基础模块中可用的操作,我想在我的自定义模块中将其删除。
<record id="action_view_sale_advance_payment_inv" model="ir.actions.act_window">
<field name="name">Invoice Order</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.advance.payment.inv</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="groups_id" eval="[(4,ref('sales_team.group_sale_salesman'))]"/>
</record>
<!-- TODO: check if we need this -->
<record model="ir.values" id="sale_order_line_make_invoice">
<field name="model_id" ref="sale.model_sale_order_line" />
<field name="name">Invoice Orders</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' + str(ref('action_view_sale_advance_payment_inv'))" />
<field name="key">action</field>
<field name="model">sale.order</field>
</record>
答案 0 :(得分:4)
我已经测试过并且有效。您只需删除此ir.value
记录
self.env.ref('sale.sale_order_line_make_invoice').unlink()
并且下拉列表为空
要自动完成此操作,您需要进行此更改:
创建xml
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
<function model="*model_name*" name="_test_function"/>
</data>
</openerp>
使用此功能创建模型
@api.model
def _test_function(self):
self.env.ref('sale.sale_order_line_make_invoice').unlink()
祝你好运
答案 1 :(得分:2)
您可以删除ir.values
记录,即&#34;创建&#34;这个动作。有2个(以及更多的课程)可能性。
使用xml / external ID
进行删除条件:ir.values
记录必须有外部ID。删除模块需要另一个作为依赖。
<odoo>
<data>
<delete model="ir.values" id="my_module.my_ir_values_id" />
</data>
</odoo>
通过搜索
删除条件:您需要搜索记录的内容,例如名称。
<odoo>
<data>
<delete model="ir.values" search="[('name', '=', 'Invoice Order')]" />
</data>
</odoo>