http://blog.csdn.net/wangnan537/article/details/44004061
實際應用Odoo(OpenERP)的過程中, 會有對某用戶組隱藏菜單的需求.
只對某一用戶組隱藏菜單,可使用如下方式:
~~~
<record id="original_module.menu_id" model="ir.ui.menu">
<field name="groups_id" eval="[(3,ref('my_new_group_id'))]"/>
</record>
~~~
隱藏消息菜單實踐記錄:
在源碼source\addons\mail\mail_thread_view.xml中,消息主菜單的定義如下:
~~~
<!-- Top menu item -->
<menuitem name="Messaging"
id="mail.mail_feeds_main"
groups="base.group_user"
sequence="10"/>
~~~
由此可見, 消息主菜單對base.group_user用戶組可見, 這是一個通用的用戶組, Odoo系統中所有用戶默認屬于此組, 因此我們使用
~~~
<record id="mail.mail_feeds_main" model="ir.ui.menu">
<field name="groups_id" eval="[(3, ref('base.group_user'))]"/>
</record>
~~~
但測試發現這種方法沒有生效! 目前尚不清楚具體原因.
此路不通,只能曲線救國. 先新建一個用戶組, 并指定消息菜單只對其可見. 代碼如下所示:
~~~
<!-- 新建用戶組hideme -->
<record id="hideme" model="res.groups">
<field name="category_id" ref="base.module_category_hidden" />
<field name="name">hide me</field>
</record>
<!-- 指定只有hidme用戶組才能看到消息菜單 -->
<record id="mail.mail_feeds_main" model="ir.ui.menu">
<field name="groups_id" eval="[(6, 0, [ref('hideme')])]"/>
</record>
~~~
這種方式會波及到之前所有能看到此菜單的用戶組, 如想讓某個用戶組仍能看到這個菜單, 需要改動代碼,示例如下:
~~~
<!-- 指定只有hidme用戶組才能看到消息菜單 -->
<record id="mail.mail_feeds_main" model="ir.ui.menu">
<field name="groups_id" eval="[(6, 0, [ref('hideme')])]"/>
<!-- 允許銷售/查看自己的線索用戶組操作消息菜單 -->
<field name="groups_id" eval="[(4, ref('base.group_sale_salesman'))]"/>
</record>
~~~
- 開發教程
- Odoo10開發教程一(構建模塊)
- Odoo10開發教程二(基本視圖)
- Odoo10開發教程三(模型關聯)
- Odoo10開發教程四(繼承)
- Odoo10開發教程五(計算字段和默認值)
- Odoo10開發教程六(高級視圖)
- Odoo10開發教程七(工作流和安全)
- 參考手冊
- odoo V10中文參考手冊(一:ORM API)
- odoo V10中文參考手冊(指導規范)
- 技巧
- odoo 常用widget
- Odoo(OpenERP)開發實踐:菜單隱藏(1)
- Odoo(OpenERP)開發實踐:菜單隱藏(2)
- Odoo(OpenERP)開發實踐:數據模型學習
- Odoo中自動備份數據庫
- Odoo(OpenERP)應用實踐: 使用db-filter參數實現通過域名指定訪問哪個數據庫
- Odoo(OpenERP)配置文件openerp-server.conf詳解
- Odoo(OpenERP v8)數據模型(Data Model)
- odoo10學習筆記十七:controller
- Qweb定義