From 9b28daaf27365022e3c3e07883600ee6ae47056b Mon Sep 17 00:00:00 2001 From: younes Date: Sun, 5 Oct 2025 10:52:33 +0100 Subject: [PATCH] [IMP] Add manager_id hr models --- odex25_hr/attendances/i18n/ar_001.po | 1 + odex25_hr/attendances/models/hr_reasons_lateness.py | 3 +++ odex25_hr/attendances/views/hr_lateness_reasons.xml | 1 + odex25_hr/employee_requests/i18n/ar_001.po | 8 +++++++- .../employee_requests/models/employee_overtime_request.py | 3 +++ odex25_hr/employee_requests/models/hr_clearance_form.py | 3 +++ .../employee_requests/models/hr_personal_permission.py | 3 ++- odex25_hr/employee_requests/models/other_request.py | 3 +++ .../employee_requests/views/employee_overtime_request.xml | 3 ++- odex25_hr/employee_requests/views/hr_clearance_form.xml | 1 + .../employee_requests/views/hr_personal_permission.xml | 1 + odex25_hr/employee_requests/views/other_request.xml | 1 + odex25_hr/exp_official_mission/i18n/ar_001.po | 1 + .../exp_official_mission/models/hr_official_mission.py | 3 +++ odex25_hr/exp_official_mission/views/training.xml | 1 + odex25_hr/hr_holidays_public/i18n/ar_001.po | 1 + odex25_hr/hr_holidays_public/models/leave_cancellation.py | 3 +++ odex25_hr/hr_holidays_public/views/leave_cancellation.xml | 1 + odex25_hr/hr_termination/i18n/ar_001.po | 5 +++++ odex25_hr/hr_termination/models/hr_termination.py | 3 +++ .../hr_termination/views/termination_resignation_eos.xml | 1 + 21 files changed, 47 insertions(+), 3 deletions(-) diff --git a/odex25_hr/attendances/i18n/ar_001.po b/odex25_hr/attendances/i18n/ar_001.po index 4fc968dc1..031cfcf33 100644 --- a/odex25_hr/attendances/i18n/ar_001.po +++ b/odex25_hr/attendances/i18n/ar_001.po @@ -748,6 +748,7 @@ msgstr "الوصف" #: code:addons/attendances/models/hr_reasons_lateness.py:0 #: code:addons/odoo/STANDARD_MODULES/test/odex25_hr/odex25_hr/attendances/models/hr_attendance_register.py:0 #: code:addons/odoo/STANDARD_MODULES/test/odex25_hr/odex25_hr/attendances/models/hr_reasons_lateness.py:0 +#: model:ir.model.fields,field_description:attendances.field_hr_reasons_lateness__manager_id #: model_terms:ir.ui.view,arch_db:attendances.employee_lateness_reasons_form_view #: model_terms:ir.ui.view,arch_db:attendances.hr_attendance_register_form_view #, python-format diff --git a/odex25_hr/attendances/models/hr_reasons_lateness.py b/odex25_hr/attendances/models/hr_reasons_lateness.py index d7c7af4db..707ba5993 100644 --- a/odex25_hr/attendances/models/hr_reasons_lateness.py +++ b/odex25_hr/attendances/models/hr_reasons_lateness.py @@ -16,6 +16,9 @@ class HrReasonsLateness(models.Model): department_id = fields.Many2one(related="employee_id.department_id", readonly=True, store=True) job_id = fields.Many2one(related="employee_id.job_id", readonly=True) employee_id = fields.Many2one('hr.employee', 'Employee Id', default=lambda item: item.get_user_id()) + manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True, + readonly=True, + domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") state = fields.Selection([('draft', _('Draft')), ('send', _('Waiting Direct Manager')), ('direct_manager', _('Waiting HR')), diff --git a/odex25_hr/attendances/views/hr_lateness_reasons.xml b/odex25_hr/attendances/views/hr_lateness_reasons.xml index 89c51bd6f..69c8dd817 100644 --- a/odex25_hr/attendances/views/hr_lateness_reasons.xml +++ b/odex25_hr/attendances/views/hr_lateness_reasons.xml @@ -69,6 +69,7 @@ attrs="{'readonly':[('state','!=','draft')]}"/> + diff --git a/odex25_hr/employee_requests/i18n/ar_001.po b/odex25_hr/employee_requests/i18n/ar_001.po index 750bb8c96..dd0678e77 100644 --- a/odex25_hr/employee_requests/i18n/ar_001.po +++ b/odex25_hr/employee_requests/i18n/ar_001.po @@ -4036,4 +4036,10 @@ msgstr "نوع الموظف الجديد" msgid "You Can Not Choose The Same Employee Type" msgstr "لايمكن إختيار نفس نوع الموظف الحالي" - +#. module: employee_requests +#: model:ir.model.fields,field_description:employee_requests.field_employee_other_request__manager_id +#: model:ir.model.fields,field_description:employee_requests.field_employee_overtime_request__manager_id +#: model:ir.model.fields,field_description:employee_requests.field_hr_clearance_form__manager_id +#: model:ir.model.fields,field_description:employee_requests.field_hr_personal_permission__manager_id +msgid "Direct Manager" +msgstr "المدير المباشر" \ No newline at end of file diff --git a/odex25_hr/employee_requests/models/employee_overtime_request.py b/odex25_hr/employee_requests/models/employee_overtime_request.py index d446599e7..ad7487373 100644 --- a/odex25_hr/employee_requests/models/employee_overtime_request.py +++ b/odex25_hr/employee_requests/models/employee_overtime_request.py @@ -44,6 +44,9 @@ class employee_overtime_request(models.Model): department_id = fields.Many2one('hr.department') employee_id = fields.Many2one('hr.employee', 'Responsible', default=lambda item: item.get_user_id(), domain=[('state', '=', 'open')]) + manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True, + readonly=True, + domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True) exception = fields.Boolean(string="Exception Hours", default=False, help='Exceeding The Limit Of Overtime Hours Per Month') diff --git a/odex25_hr/employee_requests/models/hr_clearance_form.py b/odex25_hr/employee_requests/models/hr_clearance_form.py index e5e2a9a68..66d57e60c 100644 --- a/odex25_hr/employee_requests/models/hr_clearance_form.py +++ b/odex25_hr/employee_requests/models/hr_clearance_form.py @@ -16,6 +16,9 @@ class HrClearanceForm(models.Model): department_id = fields.Many2one(related='employee_id.department_id', readonly=True, store=True) employee_id = fields.Many2one('hr.employee', 'Employee Id', default=lambda item: item.get_user_id(), domain=[('state', '=', 'open')]) + manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True, + readonly=True, + domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True) clearance_type = fields.Selection(selection=[("vacation", _("Vacation Clearance")), diff --git a/odex25_hr/employee_requests/models/hr_personal_permission.py b/odex25_hr/employee_requests/models/hr_personal_permission.py index 39a374569..ce85100b4 100644 --- a/odex25_hr/employee_requests/models/hr_personal_permission.py +++ b/odex25_hr/employee_requests/models/hr_personal_permission.py @@ -34,7 +34,8 @@ class HrPersonalPermission(models.Model): approved_by = fields.Many2one(comodel_name='res.users') refused_by = fields.Many2one(comodel_name='res.users') employee_id = fields.Many2one('hr.employee', 'Employee Id', default=lambda item: item.get_user_id(),domain=[('state', '=', 'open')]) - state = fields.Selection([('draft', _('Draft')), ('send', _('Waiting Direct Manager')), + manager_id = fields.Many2one('hr.employee', string='Direct Manager',related='employee_id.parent_id', store=True,readonly=True,domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") + state = fields.Selection([('draft', _('Draft')), ('send', _('Waiting Direct Manager')), ('direct_manager', _('Wait HR Department')), ('approve', _('Approved')), ('refused', _('Refused'))], default="draft", tracking=True) type_exit = fields.Selection([('early_exit', _('Early Exit')), ('late entry', _('Late Entry')), ('during work', _('During Work'))],default="early_exit") diff --git a/odex25_hr/employee_requests/models/other_request.py b/odex25_hr/employee_requests/models/other_request.py index 7f7e25dbf..c2c93100c 100644 --- a/odex25_hr/employee_requests/models/other_request.py +++ b/odex25_hr/employee_requests/models/other_request.py @@ -33,6 +33,9 @@ class EmployeeOtherRequest(models.Model): # relational fields employee_id = fields.Many2one('hr.employee', default=lambda item: item.get_user_id(), domain=[('state', '=', 'open')]) + manager_id = fields.Many2one('hr.employee', string='Direct Manager', related='employee_id.parent_id', store=True, + readonly=True, + domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") employee_no = fields.Char(related='employee_id.emp_no', readonly=True,string='Employee Number', store=True) department_id = fields.Many2one(comodel_name='hr.department', related='employee_id.department_id', readonly=True,store=True) job_id = fields.Many2one(comodel_name='hr.job', related='employee_id.job_id', readonly=True) diff --git a/odex25_hr/employee_requests/views/employee_overtime_request.xml b/odex25_hr/employee_requests/views/employee_overtime_request.xml index 9b22d360c..5977eb420 100644 --- a/odex25_hr/employee_requests/views/employee_overtime_request.xml +++ b/odex25_hr/employee_requests/views/employee_overtime_request.xml @@ -25,7 +25,7 @@ employee.overtime.request
-
f +