From 8cb471b5a9d9f874e557c618cd5af292ada8efe7 Mon Sep 17 00:00:00 2001 From: Ricardoalso Date: Fri, 21 Nov 2025 11:56:20 +0100 Subject: [PATCH] edi_core_oca: move ordering inside conditional block Fixes major performance issues in edi_exchange_record_view_tree when grouping is enabled. The limit parameter only applies to the number of displayed group lines, but the grouping logic fetches all matching records, causing unnecessary reordering of the entire dataset when set(orig_ids) == set(result). --- edi_core_oca/models/edi_exchange_record.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/edi_core_oca/models/edi_exchange_record.py b/edi_core_oca/models/edi_exchange_record.py index 824fe01a7..0a1ddf4a7 100644 --- a/edi_core_oca/models/edi_exchange_record.py +++ b/edi_core_oca/models/edi_exchange_record.py @@ -616,9 +616,9 @@ def _search(self, domain, offset=0, limit=None, order=None): extend_ids = list(extend_query) result.extend(extend_ids[: limit - len(result)]) - # Restore original ordering - result = [x for x in orig_ids if x in result] if set(orig_ids) != set(result): + # Restore original ordering + result = [x for x in orig_ids if x in result] # Create a virgin query query = self.browse(result)._as_query() return query