summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/fleet/models/fleet_vehicle.py14
1 files 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']: