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']: