如何在开放erp7中为特定组下的用户创建many2one字段只读?

时间:2013-07-10 15:21:23

标签: python security openerp

我创建了名为hr_th的模块,其中包含安全组“group_thw_emp”我有字段“employee_id”,这是很多2字段引用hr_employee类。我尝试在我的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']]

1 个答案:

答案 0 :(得分:-2)

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

的事情
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)]}" />

这不是很好,因为你最终可能会有很多功能领域,但我还没有找到更好的方法。