移除下拉选择列表中的“创建并编辑”链接
原文:http://shine-it.net/index.php/topic,5990.0.html
有时希望下拉列表中列出的项是与主表某个字段关联的,用户只能从下拉列表中选择一条,而不希望用户创建新的选择项。
例如:采购订单中选择好供应商后,订单明细中下拉列表列出对应供应商的产品,此时如果不希望有“创建并编辑”链接出现,应该如何做呢?
在字段 field后添加 widget="selection" 可以去除“创建并编辑”链接,但这种情况下就无法使用 domain 来过滤列表中的选择项了,所以这个方案不完美。
只是希望某些字段是这样,并不是全部。
如果希望全系统所有下拉列表都这样,可以通过修改 openerp/addons/web/static/src/js/view_form.js文件达到。
有没有其它办法呢?
限制对象的创建权限,下拉菜单中"创建并编辑"仍然存在,只不过点击弹出一个只读的页面,无法创建record。用户体验较差。
github里找到一个模块https://github.com/0k/web_m2o_enhanced,无责任推荐~
简介翻译:
==========================================================================
此模块修改了"many2one"多对一表单字段(如此处的"订单明细2产品"),以便增加一些新的视图控制选项,包括:
能够让你移除many2one字段处下拉菜单中的"创建"和/或"创建并编辑"(译注:需要你自己去继承/修改视图,下同);
能够让你更改many2one字段处下拉菜单中默认显示条目的个数;
验证权限不足时,阻止对话框的弹出。
安装此模块后,对于当前登录用户,如果没有相关对象的创建权限,默认将不显示"创建"菜单。
增加的视图控制选项:
create boolean (默认值: 依赖用户是否有创建权限)
控制下拉菜单中是否显示"创建"项,用户有创建权限则显示;
create_edit boolean (默认值: 依赖用户是否有创建权限)
控制下拉菜单中是否显示"创建并编辑"项,用户有创建并编辑权限则显示;
m2o_dialog boolean (默认值: 依赖用户是否有创建权限)
验证用户是否有创建权限,并决定是否显示many2one 对话框;
limit int (默认值: openerp 默认值为 7)
下拉菜单显示记录(record)个数。
举例:
...
<field name="partner_id" options="{'limit': 10, 'create': false, 'create_edit': false}"/>
...
==========================================================================