From 32169e2c7be237a3f35cf2217dc0d5aecc6fe635 Mon Sep 17 00:00:00 2001 From: Ricardoalso Date: Fri, 21 Nov 2025 12:05:14 +0100 Subject: [PATCH] edi_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_oca/models/edi_exchange_record.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/edi_oca/models/edi_exchange_record.py b/edi_oca/models/edi_exchange_record.py index 419e425b3..87ac74759 100644 --- a/edi_oca/models/edi_exchange_record.py +++ b/edi_oca/models/edi_exchange_record.py @@ -617,9 +617,9 @@ def _search(self, domain, offset=0, limit=None, order=None, access_rights_uid=No 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