如何删除 Odoo 中的 window 操作?
How can I delete window action in Odoo?
我创建了一个模块,因为我添加了 window 操作,现在我想在另一个模块中删除该 window 操作。有什么方法可以删除/隐藏 window 操作吗?
假设以下是销售基本模块中可用的操作,我想在我的自定义模块中将其删除。
<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>
我已经测试过并且有效。你只需要删除这条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()
祝你好运
可以删除ir.values
条记录,也就是"creating"这个动作。有 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>
我创建了一个模块,因为我添加了 window 操作,现在我想在另一个模块中删除该 window 操作。有什么方法可以删除/隐藏 window 操作吗?
假设以下是销售基本模块中可用的操作,我想在我的自定义模块中将其删除。
<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>
我已经测试过并且有效。你只需要删除这条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()
祝你好运
可以删除ir.values
条记录,也就是"creating"这个动作。有 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>