Files
odoo_source/addons/hr_org_chart/tests/test_employee.py
T
Xavier Bol (xbo) f009f19fc5 [FIX] web_hierarchy,hr_org_chart: remove highlight on focus record
Before this commit, the highlight added on a focus record, that styling
added was useful when we displayed only the first result in the search
to be able to build a tree but since now all the records found with
the search made by the user are shown without building a tree if it
is not possible then it is no longer needed to highlight the records
found.

This commit removes the highlight added on the focused record, the one
found by the search since it is not really needed.

task-3556262

closes odoo/odoo#138803

Signed-off-by: Sofie Gvaladze (sgv) <sgv@odoo.com>
2023-10-18 15:26:33 +00:00

110 lines
5.7 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.tests import tagged
from odoo.addons.hr.tests.common import TestHrCommon
@tagged('-at_install', 'post_install')
class TestEmployee(TestHrCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.employee_georges, cls.employee_paul, cls.employee_pierre = cls.env['hr.employee'].with_user(cls.res_users_hr_officer).create([
{'name': 'Georges'},
{'name': 'Paul'},
{'name': 'Pierre'},
])
def test_is_subordinate(self):
self.res_users_hr_officer.employee_id = self.employee_georges
self.employee_paul.parent_id = self.employee_georges
employees = self.employee_paul + self.employee_pierre
self.assertTrue(
self.employee_paul.is_subordinate,
'Paul should be a subordinate of the current user since the current is his manager.')
self.assertFalse(
self.employee_pierre.is_subordinate,
'Pierre should not be a subordinate of the current user since Pierre has no manager.')
self.assertEqual(employees.filtered_domain(employees._search_is_subordinate('=', True)), self.employee_paul)
self.assertEqual(employees.filtered_domain(employees._search_is_subordinate('=', False)), self.employee_pierre)
self.employee_pierre.parent_id = self.employee_paul
self.assertTrue(
self.employee_paul.is_subordinate,
'Paul should be a subordinate of the current user since the current is his manager.')
self.assertTrue(
self.employee_pierre.is_subordinate,
"Pierre should now be a subordinate of the current user since Paul is his manager and the current user is the Paul's manager.")
self.assertEqual(employees.filtered_domain(employees._search_is_subordinate('=', True)), employees)
self.assertFalse(employees.filtered_domain(employees._search_is_subordinate('=', False)))
self.employee_paul.parent_id = False
employees._compute_is_subordinate()
self.assertFalse(
self.employee_paul.is_subordinate,
'Paul should no longer be a subordinate of the current user since Paul has no manager.')
self.assertFalse(
self.employee_pierre.is_subordinate,
"Pierre should not be a subordinate of the current user since Paul is his manager and the current user is not the Paul's manager.")
self.assertFalse(employees.filtered_domain(employees._search_is_subordinate('=', True)))
self.assertEqual(employees.filtered_domain(employees._search_is_subordinate('=', False)), employees)
def test_hierarchy_read(self):
HrEmployee = self.env['hr.employee']
employees = self.employee_georges + self.employee_paul + self.employee_pierre
result = HrEmployee.hierarchy_read([('id', 'in', employees.ids)], ['id'], 'parent_id')
for emp in employees:
self.assertIn({'id': emp.id, 'parent_id': False}, result)
self.employee_georges.parent_id = self.employee_paul
self.employee_pierre.parent_id = self.employee_paul
result = HrEmployee.hierarchy_read([('id', 'in', employees.ids)], ['id'], 'parent_id')
self.assertEqual(len(result), 3)
for emp in employees:
emp_dict = {'id': emp.id, 'parent_id': emp.parent_id.id and (emp.parent_id.id, emp.parent_id.display_name)}
if not emp.parent_id:
emp_dict['__child_ids__'] = [self.employee_georges.id, self.employee_pierre.id]
self.assertIn(emp_dict, result)
employee_count = HrEmployee.search_count([('id', 'not in', employees.ids), ('parent_id', '=', False)])
result = HrEmployee.hierarchy_read([('parent_id', '=', False)], ['id'], 'parent_id')
self.assertEqual(len(result), 1 + employee_count)
for employee_dict in result:
self.assertFalse(employee_dict['parent_id'], "Each employee in the result should not have any parent set.")
self.assertIn({'id': self.employee_paul.id, 'parent_id': False, '__child_ids__': [self.employee_georges.id, self.employee_pierre.id]}, result)
result = HrEmployee.hierarchy_read([('id', '=', self.employee_paul.id)], ['id'], 'parent_id')
self.assertEqual(len(result), 3)
for emp in employees:
emp_dict = {'id': emp.id, 'parent_id': emp.parent_id.id and (emp.parent_id.id, emp.parent_id.display_name)}
self.assertIn(emp_dict, result)
result = HrEmployee.hierarchy_read([('id', '=', self.employee_georges.id)], ['id'], 'parent_id')
self.assertEqual(len(result), 3)
for emp in employees:
emp_dict = {'id': emp.id, 'parent_id': emp.parent_id.id and (emp.parent_id.id, emp.parent_id.display_name)}
self.assertIn(emp_dict, result)
self.employee_pierre.parent_id = self.employee_georges
result = HrEmployee.hierarchy_read([('id', '=', self.employee_georges.id)], ['id'], 'parent_id')
self.assertEqual(len(result), 3)
for emp in employees:
emp_dict = {'id': emp.id, 'parent_id': emp.parent_id.id and (emp.parent_id.id, emp.parent_id.display_name)}
self.assertIn(emp_dict, result)
result = HrEmployee.hierarchy_read([('id', '=', self.employee_pierre.id)], ['id'], 'parent_id')
self.assertEqual(len(result), 2)
self.assertIn(
{'id': self.employee_pierre.id, 'parent_id': (self.employee_georges.id, self.employee_georges.name)},
result
)
self.assertIn(
{'id': self.employee_georges.id, 'parent_id': (self.employee_paul.id, self.employee_paul.name)},
result
)