[FIX] stock: improve perf of _compute_has_packages of stock.picking
Use read_group instead of search count to batch the compute. opw-2371161 closes odoo/odoo#63754 X-original-commit: b82d8a8456085ab700ef1ce1df4052fa6cefd7e0 Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com> Signed-off-by: Rémy Voet <ryv-odoo@users.noreply.github.com>
This commit is contained in:
@@ -526,8 +526,11 @@ class Picking(models.Model):
|
||||
picking.move_line_exist = bool(picking.move_line_ids)
|
||||
|
||||
def _compute_has_packages(self):
|
||||
domain = [('picking_id', 'in', self.ids), ('result_package_id', '!=', False)]
|
||||
cnt_by_picking = self.env['stock.move.line'].read_group(domain, ['picking_id'], ['picking_id'])
|
||||
cnt_by_picking = {d['picking_id'][0]: d['picking_id_count'] for d in cnt_by_picking}
|
||||
for picking in self:
|
||||
picking.has_packages = bool(self.env['stock.move.line'].search_count([('picking_id', '=', picking.id), ('result_package_id', '!=', False)]))
|
||||
picking.has_packages = bool(cnt_by_picking.get(picking.id, False))
|
||||
|
||||
@api.depends('immediate_transfer', 'state')
|
||||
def _compute_show_check_availability(self):
|
||||
|
||||
Reference in New Issue
Block a user