我创建了一个模块,它为树视图的 More 按钮的下拉列表添加了一个选项:
<record id="stock_move_2_stock_move_sw_manager_action" model="ir.actions.server">
<field name="name">Swap moves</field>
<field name="model_id" ref="model_stock_move"/>
<field name="state">code</field>
<field name="code">
action = self.open_stock_move_sw_manager_wizard(cr, user.id, context.get('active_ids', []), context=context)
</field>
</record>
<record id="stock_move_sw_manager_option" model="ir.values">
<field name="name">Swap moves</field>
<field name="key2" eval="'client_action_multi'"/>
<field name="model" eval="'stock.move'"/>
<field name="value" eval="'ir.actions.server,%d'%stock_move_2_stock_move_sw_manager_action"/>
</record>
但是现在,我必须隐藏(或删除)它。由于几个原因,为了正确地做到这一点,我必须创建其他模块来实现这一点(而不是删除原始代码使其消失)。
问题在于我无法使其隐身,我尝试使用groups_id
技巧,使用<delete>
标记(虽然位于<data noupdate="1">
标记内但仍然很危险)没有成功。
有人可以帮我吗?
注意:我宁愿不覆盖open_stock_move_sw_manager_wizard
方法来放置raise Warning
(这样选项的功能会被禁用但选项仍然是可见)。
答案 0 :(得分:3)
好吧,我找到了一种我在任何论坛上见过的方式,所以我不知道这是不是很疯狂,但对数据库来说似乎没什么危险,也没有必要使用JavaScript。我知道key2
表示您选择的位置,client_action_multi
用于在更多按钮下拉列表中显示,client_print_multi
用于在打印内显示按钮下拉列表等...所以我试着为这个列添加一个空字符串,下一步:
<record id="my_inherited_module.stock_move_sw_manager_option" model="ir.values">
<field name="key2" eval="''"/>
</record>
目前它按预期工作。