From 38ff430f2022293eb7de7bac4806cdb4675890f4 Mon Sep 17 00:00:00 2001 From: Florent de Labarre Date: Thu, 24 Nov 2022 21:41:07 +0000 Subject: [PATCH] [FIX] mrp_subcontracting: sql crach In large database, if you try to get all subcontrat quant you can crach postgres with a big query. closes odoo/odoo#106543 X-original-commit: aa104980d483efef087198dc5bb70ec63a47ed7e Signed-off-by: William Henrotin (whe) --- addons/mrp_subcontracting/models/stock_quant.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/addons/mrp_subcontracting/models/stock_quant.py b/addons/mrp_subcontracting/models/stock_quant.py index 05ed58c21bf..adb6f96a255 100644 --- a/addons/mrp_subcontracting/models/stock_quant.py +++ b/addons/mrp_subcontracting/models/stock_quant.py @@ -14,13 +14,4 @@ class StockQuant(models.Model): if operator not in ['=', '!='] or not isinstance(value, bool): raise UserError(_('Operation not supported')) - subcontract_locations = self.env['stock.location'].search([('is_subcontracting_location', '=', 'True')]) - - quant_ids = self.env['stock.quant'].search([ - ('location_id', 'in', subcontract_locations.ids), - ]).ids - if (operator == '!=' and value is True) or (operator == '=' and value is False): - domain_operator = 'not in' - else: - domain_operator = 'in' - return [('id', domain_operator, quant_ids)] + return [('location_id.is_subcontracting_location', operator, value)]