From e4e6e04a61d6cb87b2d3e5ec278cad69ae88a895 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Fri, 24 Sep 2010 12:15:45 +0200 Subject: [PATCH] [IMP] ir.property: fixed compatibility with python 2.5 bzr revid: odo@openerp.com-20100924101545-2baak1xfh0v8z04n --- bin/addons/base/res/ir_property.py | 3 ++- bin/tools/misc.py | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) 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: