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定义