summaryrefslogtreecommitdiff
path: root/odoo/tools/misc.py
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2018-01-18 12:33:21 +0100
committerRaphael Collet <rco@odoo.com>2018-01-23 16:41:45 +0100
commit6f30f0af9cd8af3dbde1af5b6fce4efb0e41e67c (patch)
tree96f8e973044fa5231330bb244edea22959a04ff0 /odoo/tools/misc.py
parentf1d60d2e528284c4d4401d40e362f1b45ac32211 (diff)
[FIX] models: behavior with multiple inverse/compute mixed on same fields
Diffstat (limited to 'odoo/tools/misc.py')
-rw-r--r--odoo/tools/misc.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/odoo/tools/misc.py b/odoo/tools/misc.py
index a9b66117f03..5fc1f18e1b2 100644
--- a/odoo/tools/misc.py
+++ b/odoo/tools/misc.py
@@ -1062,6 +1062,13 @@ class LastOrderedSet(OrderedSet):
OrderedSet.discard(self, elem)
OrderedSet.add(self, elem)
+def groupby(key, elems):
+ """ Return a partition of ``elems`` based on ``key(elem)``. """
+ groups = defaultdict(list)
+ for elem in elems:
+ groups[key(elem)].append(elem)
+ return groups.values()
+
def unique(it):
""" "Uniquifier" for the provided iterable: will output each element of
the iterable once.