新しいモジュールを開発し、そのモジュールで.xmlファイルにグループを作成しました。
次に、他のメニューですでに作成されているメニューにそのグループを適用したいと思います。
では、これらのメニューにグループを適用できますか?
メニューを上書きしたくありません。作成済みのメニューにグループを適用したいだけです。
前もって感謝します。
既存のメニューへのグループの追加は、通常のOpenERPレコード更新メカニズムを介して行われます。モジュール内の既存のメニューレコードを実際に完全に再定義する必要はありません。フィールド<record>
の値のみを使用して、同じIDでを宣言するだけです。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を見つけて、それにあなたのコードを追加することです。たとえば、定義済みのメニュー、
<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" />
これがお役に立てば幸いです。