summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Vinet <vincent.vinet@savoirfairelinux.com>2015-04-20 13:52:06 -0400
committerXavier Morel <xmo@odoo.com>2015-04-21 09:49:47 +0200
commit3cc3ab62526610cdc849073fcb812882ea58d0be (patch)
tree5d604b33ccaf74e684902148a300b7e05217b7ea
parentf4e1974d67c776b01329db443d3def05d2ce1bc2 (diff)
[FIX] document: polynomial time reordering of document ids
Triggered every time on list views as the list view uses a search_count (filtered but unlimited) to display pagination. closes #6397
-rw-r--r--addons/document/document.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/addons/document/document.py b/addons/document/document.py
index df12431df7a..56324c6c462 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -110,8 +110,11 @@ class document_file(osv.osv):
ids.extend(parents[parent_id])
# sort result according to the original sort ordering
- ids = [id for id in orig_ids if id in ids]
- return len(ids) if count else ids
+ if count:
+ return len(ids)
+ else:
+ set_ids = set(ids)
+ return [id for id in orig_ids if id in set_ids]
def copy(self, cr, uid, id, default=None, context=None):
if not default: