[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) <nim@odoo.com>
Signed-off-by: bon-odoo <nboulif@users.noreply.github.com>
This commit is contained in:
Nasreddin (bon)
2020-06-11 10:39:10 +00:00
parent 329b6c2409
commit 8f2be8560e
+10 -4
View File
@@ -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']: