From d5472861efc7941191f797240bfa0d5328395e24 Mon Sep 17 00:00:00 2001 From: Philippe Wauthy Date: Fri, 29 Jul 2022 07:44:02 +0000 Subject: [PATCH] [IMP] hr(_fleet): add private car plate Not all employees have a company car. This commit adds a private license plate field on hr.employee. The field allows the HR Officer and HR Administrator to search for emloyees based on their license plates. If fleet and hr apps are installed, the search is based on both the company car and private car license plates. task-2936873 closes odoo/odoo#101146 Related: odoo/enterprise#31796 Signed-off-by: Kevin Baptiste --- addons/hr/models/hr_employee.py | 1 + addons/hr/views/hr_employee_public_views.xml | 12 +++++------- addons/hr/views/hr_employee_views.xml | 16 ++++++++++------ addons/hr_fleet/models/employee.py | 13 +++++++++++++ addons/hr_fleet/views/employee_views.xml | 5 ++--- addons/hr_skills/views/hr_views.xml | 2 +- 6 files changed, 32 insertions(+), 17 deletions(-) diff --git a/addons/hr/models/hr_employee.py b/addons/hr/models/hr_employee.py index da7e57f20e3..93817bc75c6 100644 --- a/addons/hr/models/hr_employee.py +++ b/addons/hr/models/hr_employee.py @@ -120,6 +120,7 @@ class HrEmployeePrivate(models.Model): message_main_attachment_id = fields.Many2one(groups="hr.group_hr_user") id_card = fields.Binary(string="ID Card Copy", groups="hr.group_hr_user") driving_license = fields.Binary(string="Driving License", groups="hr.group_hr_user") + private_car_plate = fields.Char(groups="hr.group_hr_user", help="If you have more than one car, just separate the plates by a space.") _sql_constraints = [ ('barcode_uniq', 'unique (barcode)', "The Badge ID must be unique, this one is already assigned to another employee."), diff --git a/addons/hr/views/hr_employee_public_views.xml b/addons/hr/views/hr_employee_public_views.xml index adc59f9edaf..cd627019ecf 100644 --- a/addons/hr/views/hr_employee_public_views.xml +++ b/addons/hr/views/hr_employee_public_views.xml @@ -8,10 +8,12 @@ - - + + + + - + @@ -22,10 +24,6 @@ - - - - diff --git a/addons/hr/views/hr_employee_views.xml b/addons/hr/views/hr_employee_views.xml index 91079577d61..105ae341f90 100644 --- a/addons/hr/views/hr_employee_views.xml +++ b/addons/hr/views/hr_employee_views.xml @@ -8,9 +8,14 @@ - - + + + + + + + @@ -31,10 +36,6 @@ - - - - @@ -147,6 +148,9 @@ Km + + + diff --git a/addons/hr_fleet/models/employee.py b/addons/hr_fleet/models/employee.py index b1e1ad67783..de98725a292 100644 --- a/addons/hr_fleet/models/employee.py +++ b/addons/hr_fleet/models/employee.py @@ -13,6 +13,7 @@ class Employee(models.Model): 'fleet.vehicle', 'driver_employee_id', string='Vehicles (private)', groups="fleet.fleet_group_manager,hr.group_hr_user", ) + license_plate = fields.Char(compute="_compute_license_plate", search="_search_license_plate") mobility_card = fields.Char(groups="fleet.fleet_group_user") def action_open_employee_cars(self): @@ -27,6 +28,18 @@ class Employee(models.Model): "name": "History Employee Cars", } + @api.depends('private_car_plate', 'car_ids.license_plate') + def _compute_license_plate(self): + for employee in self: + if employee.private_car_plate and employee.car_ids.license_plate: + employee.license_plate = ' '.join([employee.car_ids.license_plate, employee.private_car_plate]) + else: + employee.license_plate = employee.car_ids.license_plate or employee.private_car_plate + + def _search_license_plate(self, operator, value): + employees = self.env['hr.employee'].search(['|', ('car_ids.license_plate', operator, value), ('private_car_plate', operator, value)]) + return [('id', 'in', employees.ids)] + def _compute_employee_cars_count(self): rg = self.env['fleet.vehicle.assignation.log']._read_group([ ('driver_employee_id', 'in', self.ids), diff --git a/addons/hr_fleet/views/employee_views.xml b/addons/hr_fleet/views/employee_views.xml index 8decc02b63f..c16279a1457 100644 --- a/addons/hr_fleet/views/employee_views.xml +++ b/addons/hr_fleet/views/employee_views.xml @@ -28,9 +28,8 @@ hr.employee - - + + diff --git a/addons/hr_skills/views/hr_views.xml b/addons/hr_skills/views/hr_views.xml index e0d1eaae6b4..724dd6ca1c9 100644 --- a/addons/hr_skills/views/hr_views.xml +++ b/addons/hr_skills/views/hr_views.xml @@ -21,7 +21,7 @@ hr.employee.public - +