在openerp7中,如何使many2one字段为特定组下的用户只读



我创建了名为hr_th的模块,该模块具有安全组"group_thw_emp",我有一个字段"employee_id",该字段是指hr_eemployee类的多个字段。我在我的xml 中尝试了以下代码

<field name="employee_id" attrs= "{'readonly': [('groups','=','hr_th.group_thw_emp')]}"/>

但我得到的错误是:

Uncaught Error: Unknown field groups in domain [['groups','=','hr_th.group_thw_emp']]

这是一个有点棘手的问题。理想情况下,你会做一些类似的事情

attrs = {'readonly': [('employee_id.groups', 'contains', 'hr_th.group_thw_emp')]}

但据我所知,你不能这样做。我不相信属性表达式计算器支持包含。

我处理它的方法是扩展或更改模型,并添加一个函数字段,如果员工是您想要的团队的成员,则该字段将返回true,并像这样使用它。

<field name="employee_is_in_thw_emp" invisible="1" />
<field name="employee_id" attrs="{'readonly': [('employee_is_in_thw_emp', '=', True)]}" />

这不太好,因为你可能会得到很多功能字段,但我还没有找到更好的方法。

最新更新