From 205ed1d320f052445d4c78c102367f0fa5127ade Mon Sep 17 00:00:00 2001 From: fw-bot Date: Wed, 23 Oct 2019 12:02:32 +0000 Subject: [PATCH] [FIX] hr_fleet: count distinct vehicle_id per driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes odoo/odoo#39681 X-original-commit: c98a5041cdad149e14d84e6289a53fd42f617e16 Signed-off-by: Yannick Tivisse (yti) Co-authored-by: Lucas Lefèvre --- addons/hr_fleet/models/employee.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/hr_fleet/models/employee.py b/addons/hr_fleet/models/employee.py index 304a576d792..1d964ad35d3 100644 --- a/addons/hr_fleet/models/employee.py +++ b/addons/hr_fleet/models/employee.py @@ -26,8 +26,11 @@ class Employee(models.Model): def _compute_employee_cars_count(self): driver_ids = (self.mapped('user_id.partner_id') | self.sudo().mapped('address_home_id')).ids fleet_data = self.env['fleet.vehicle.assignation.log'].read_group( - domain=[('driver_id', 'in', driver_ids)], fields=['driver_id'], groupby=['driver_id']) - mapped_data = {m['driver_id'][0]: m['driver_id_count'] for m in fleet_data} + domain=[('driver_id', 'in', driver_ids)], fields=['vehicle_id:array_agg'], groupby=['driver_id']) + mapped_data = { + group['driver_id'][0]: len(set(group['vehicle_id'])) + for group in fleet_data + } for employee in self: drivers = employee.user_id.partner_id | employee.sudo().address_home_id employee.employee_cars_count = sum(mapped_data.get(pid, 0) for pid in drivers.ids)