diff --git a/addons/hr/models/hr_employee_base.py b/addons/hr/models/hr_employee_base.py index b320881bd6b..9a21b15b8ac 100644 --- a/addons/hr/models/hr_employee_base.py +++ b/addons/hr/models/hr_employee_base.py @@ -92,7 +92,7 @@ class HrEmployeeBase(models.AbstractModel): raise UserError(_('Operation not supported')) # Double negation if not value: - operator = '=' if operator == '!=' else '=' + operator = '!=' if operator == '=' else '=' if not self.env.user.employee_id.department_id: return [('id', operator, self.env.user.employee_id.id)] return (['!'] if operator == '!=' else []) + [('department_id', 'child_of', self.env.user.employee_id.department_id.id)] diff --git a/addons/hr/tests/test_hr_employee.py b/addons/hr/tests/test_hr_employee.py index 087e3e407c6..ed9b813b99e 100644 --- a/addons/hr/tests/test_hr_employee.py +++ b/addons/hr/tests/test_hr_employee.py @@ -124,6 +124,19 @@ class TestHrEmployee(TestHrCommon): self.assertTrue(emp_sub_sub.member_of_department) self.assertFalse(emp_other.member_of_department) self.assertFalse(emp_parent.member_of_department) + employees = emp + emp_sub + emp_sub_sub + emp_other + emp_parent + self.assertEqual( + employees.filtered_domain(employees._search_part_of_department('=', True)), + emp + emp_sub + emp_sub_sub) + self.assertEqual( + employees.filtered_domain(employees._search_part_of_department('!=', False)), + emp + emp_sub + emp_sub_sub) + self.assertEqual( + employees.filtered_domain(employees._search_part_of_department('=', False)), + emp_other + emp_parent) + self.assertEqual( + employees.filtered_domain(employees._search_part_of_department('!=', True)), + emp_other + emp_parent) def test_employee_create_from_user(self): employee = self.env['hr.employee'].create({