diff --git a/addons/fleet/models/fleet_vehicle.py b/addons/fleet/models/fleet_vehicle.py index 2aedc45d68c..091595bc937 100644 --- a/addons/fleet/models/fleet_vehicle.py +++ b/addons/fleet/models/fleet_vehicle.py @@ -229,9 +229,11 @@ class FleetVehicle(models.Model): def _name_search(self, name, args=None, operator='ilike', limit=100, name_get_uid=None): domain = args or [] domain = expression.AND([domain, [('name', operator, name)]]) - partner_ids = self.env['res.partner']._search([('name', operator, name)], access_rights_uid=name_get_uid) - if partner_ids: - domain = expression.OR([domain, ['|', ('driver_id', 'in', partner_ids), ('driver_id', '=', False)]]) + # we don't want to override the domain's filter on driver_id if present + if not any(['driver_id' in element for element in domain]): + partner_ids = self.env['res.partner']._search([('name', operator, name)], access_rights_uid=name_get_uid) + if partner_ids: + domain = expression.OR([domain, ['|', ('driver_id', 'in', partner_ids), ('driver_id', '=', False)]]) rec = self._search(domain, limit=limit, access_rights_uid=name_get_uid) return self.browse(rec).name_get()