员工模块中的此规则仅适用于员工(经理(各自的子层次结构。
[('id', 'child_of', [employee.id for employee in user.employee_ids ])]
但它也适用于所有部门员工,例如人力资源部。而人力资源部门/用户(员工(需要查看其运营的所有员工。因此,必须覆盖以上规则或调整以上规则或任何其他有效方法。
['|',('id', 'child_of', [employee.id for employee in user.employee_ids ]),('department_id', '!=', 3)]
我已经应用了上面的内容,但它显示了HR(dep id=3(他们的所有子层次结构,而不是他们的dep员工,因为它在第一部分中涵盖了,但它向其他部门成员显示了我最初应用此记录规则的所有员工。
非常感谢您的帮助。
如果我理解你的目标(对于部门!=3:显示平面层次而不是垂直层次?(,它将解决你的问题:
['|',('id', 'child_of', [employee.id for employee in user.employee_ids ]),'&',('department_id', '!=', 3),('id', 'in', [employee.id for employee in user.employee_ids ])]
Odoo中有一个选项,可以将记录规则应用于特定的用户组,也可以针对其他用户清空域,这样规则就不会应用于其他用户。
@sylwain的解决方案有效,但用于应用它和过滤,但不过滤用户组,因此该规则将不适用于特定用户的组。以下是我解决这个问题的步骤。
-
我为员工模型创建了一个新的用户组Hr_staff。
-
转到员工记录规则添加记录规则,并从下面为该用户分配一个组,例如员工官员(可能已检查(
['|',('id','child_of',[employee.ids中employee_id]的employee_id(,('user_id','=',user.id(]
-
转到Employee记录规则,添加记录规则,然后从下面为该用户分配一个组,名称为Hr_staff(可以是任何名称(。添加一个空域作为
[]
Hr_staff必须查看所有员工。
第一条规则将应用于所有作为职员的用户,并且可以从设置中的用户进行设置。第二规则将被应用于Hr_ staff(新创建的用户组(。
应用此功能后,人力资源人员可以查看所有员工。而职员组或具有子职员的职员在登录并转到职员模块时能够在视图中看到他的子职员和他自己的职员。
从这个youtube视频中获得帮助Youtube视频链接