From 8f2be8560e96b683d79b82eb43a186f5a2dac3cf Mon Sep 17 00:00:00 2001 From: "Nasreddin (bon)" Date: Tue, 9 Jun 2020 10:15:49 +0000 Subject: [PATCH] [FIX] fleet: User is set to "Plan To Change Car" when set as future driver Issue - Install "Fleet" app and open it - Add new car with user X as driver and set state as "Registered". - Add new car with user X as future driver and set state as 'Waiting list' The user is set as "Plan To Change Car". Cause When a user is set to a new car as a future driver, the user will automaticly be set as "Plan To Change Car". Solution Add condition to set as "Plan To Change Car" only if the user new car state is not "Waiting List". opw-2259606 closes odoo/odoo#52836 X-original-commit: 6d35733e61b1d8b18acc3510046423aec7fe1c85 Signed-off-by: Nicolas Martinelli (nim) Signed-off-by: bon-odoo --- addons/fleet/models/fleet_vehicle.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/addons/fleet/models/fleet_vehicle.py b/addons/fleet/models/fleet_vehicle.py index b5ea75d4a71..97ada5ad8cd 100644 --- a/addons/fleet/models/fleet_vehicle.py +++ b/addons/fleet/models/fleet_vehicle.py @@ -204,8 +204,11 @@ class FleetVehicle(models.Model): if 'driver_id' in vals and vals['driver_id']: res.create_driver_history(vals['driver_id']) if 'future_driver_id' in vals and vals['future_driver_id']: - future_driver = self.env['res.partner'].browse(vals['future_driver_id']) - future_driver.sudo().write({'plan_to_change_car': True}) + state_waiting_list = self.env.ref('fleet.fleet_vehicle_state_waiting_list', raise_if_not_found=False) + states = res.mapped('state_id').ids + if not state_waiting_list or state_waiting_list.id not in states: + future_driver = self.env['res.partner'].browse(vals['future_driver_id']) + future_driver.sudo().write({'plan_to_change_car': True}) return res def write(self, vals): @@ -214,8 +217,11 @@ class FleetVehicle(models.Model): self.filtered(lambda v: v.driver_id.id != driver_id).create_driver_history(driver_id) if 'future_driver_id' in vals and vals['future_driver_id']: - future_driver = self.env['res.partner'].browse(vals['future_driver_id']) - future_driver.sudo().write({'plan_to_change_car': True}) + state_waiting_list = self.env.ref('fleet.fleet_vehicle_state_waiting_list', raise_if_not_found=False) + states = self.mapped('state_id').ids if 'state_id' not in vals else [vals['state_id']] + if not state_waiting_list or state_waiting_list.id not in states: + future_driver = self.env['res.partner'].browse(vals['future_driver_id']) + future_driver.sudo().write({'plan_to_change_car': True}) res = super(FleetVehicle, self).write(vals) if 'active' in vals and not vals['active']: