6

新しいモジュールを開発し、そのモジュールで.xmlファイルにグループを作成しました。
次に、他のメニューですでに作成されているメニューにそのグループを適用したいと思います。
では、これらのメニューにグループを適用できますか?
メニューを上書きしたくありません。作成済みのメニューにグループを適用したいだけです。

前もって感謝します。

4

2 に答える 2

11

既存のメニューへのグループの追加は、通常の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)などです。

于 2012-11-19T12:22:39.963 に答える
0

レコードを更新する代わりに、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" />

これがお役に立てば幸いです。

于 2017-11-16T12:07:09.337 に答える