oca-ocb-hr/odoo-bringout-oca-ocb-hr/hr/report/hr_manager_department_report.py
Ernad Husremovic e1d89e11e3 19.0 vanilla
2026-03-09 09:31:00 +01:00

33 lines
1.4 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
class HrManagerDepartmentReport(models.AbstractModel):
_name = 'hr.manager.department.report'
_description = 'Hr Manager Department Report'
_auto = False
employee_id = fields.Many2one('hr.employee', string="Employee", readonly=True)
has_department_manager_access = fields.Boolean(search="_search_has_department_manager_access",
compute="_compute_has_department_manager_access")
def _search_has_department_manager_access(self, operator, value):
if operator != 'in':
return NotImplemented
department_ids = self.env['hr.department']._search([('manager_id', 'in', self.env.user.employee_ids.ids)])
return [
'|',
('employee_id.user_id', '=', self.env.user.id),
('employee_id.department_id', 'child_of', tuple(department_ids)),
]
def _compute_has_department_manager_access(self):
department_ids = self.env['hr.department']._search([('manager_id', 'in', self.env.user.employee_ids.ids)])
employees = self.env['hr.employee'].search([
'|',
('user_id', '=', self.env.user.id),
('department_id', 'child_of', tuple(department_ids)),
])
for report in self:
report.has_department_manager_access = report.employee_id in employees