我开发了一个新模块,并且在该模块中我在 .xml 文件中创建了一个组。
现在我想将该组应用到已经在其他菜单中创建的菜单中。
那么我可以将组应用于这些菜单吗?
我不想覆盖菜单,我只想在已经创建的菜单中应用组。
提前致谢。
向现有菜单添加组是通过正常的 OpenERP 记录更新机制完成的。您实际上不必完全重新定义模块中的现有菜单记录,只需声明<record>
具有相同 ID 的 a,该字段只有一个值groups_id
:
<record id="original_module.menu_id" model="ir.ui.menu">
<!-- Use the special many2many value syntax to add a child record,
and the `ref()` method to resolve the group XML ID -->
<field name="groups_id" eval="[(4,ref('my_new_group_id'))]"/>
</record>
您可以在官方 OpenERP 插件中找到类似的示例,例如使顶级销售菜单对一些额外组可见的 CRM 模块 (l.48)。
您可以替换 menuitem 本身,而不是更新记录,
您所要做的就是找到要覆盖的菜单项,然后将代码添加到其中。例如,已经定义的菜单,
<menuitem id="menu_example" action="menu_action" name="Example Menu" parent="menu_example_parent" sequence="10"/>
现在假设您要向此菜单添加组,
<menuitem id="existing_module.menu_example" action="existing_module.menu_action" name="Example Menu" parent="existing_module.menu_example_parent" sequence="10" groups="group_example"/>
如果它不起作用,则首先删除该菜单,然后再次编写该菜单,包括您的代码。对于删除菜单,
<delete model="ir.ui.menu" id="module_name.menu_id" />
希望这会有所帮助。