diff --git a/bin/addons/base/res/ir_property.py b/bin/addons/base/res/ir_property.py index 27a3223f18c..27536ff80f5 100644 --- a/bin/addons/base/res/ir_property.py +++ b/bin/addons/base/res/ir_property.py @@ -20,8 +20,9 @@ ############################################################################## from osv import osv,fields -from operator import attrgetter +from tools.misc import attrgetter import time + # ------------------------------------------------------------------------- # Properties # ------------------------------------------------------------------------- diff --git a/bin/tools/misc.py b/bin/tools/misc.py index ad422411d29..5a3d21bef86 100644 --- a/bin/tools/misc.py +++ b/bin/tools/misc.py @@ -1406,5 +1406,24 @@ def upload_data(email, data, type='SURVEY'): a = upload_data_thread(email, data, type) a.start() return True + + +# port of python 2.6's attrgetter with support for dotted notation +def resolve_attr(obj, attr): + for name in attr.split("."): + obj = getattr(obj, name) + return obj + +def attrgetter(*items): + if len(items) == 1: + attr = items[0] + def g(obj): + return resolve_attr(obj, attr) + else: + def g(obj): + return tuple(resolve_attr(obj, attr) for attr in items) + return g + + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: