diff options
| author | Vincent Vinet <vincent.vinet@savoirfairelinux.com> | 2015-04-20 13:52:06 -0400 |
|---|---|---|
| committer | Xavier Morel <xmo@odoo.com> | 2015-04-21 09:49:47 +0200 |
| commit | 3cc3ab62526610cdc849073fcb812882ea58d0be (patch) | |
| tree | 5d604b33ccaf74e684902148a300b7e05217b7ea /addons/document | |
| parent | f4e1974d67c776b01329db443d3def05d2ce1bc2 (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
Diffstat (limited to 'addons/document')
| -rw-r--r-- | addons/document/document.py | 7 |
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: |
