diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index e8ce3adb592..fdce0d7c483 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -35,12 +35,14 @@ import pooler _logger = logging.getLogger(__name__) def _get_fields_type(self, cr, uid, context=None): + # Avoid too many nested `if`s below, as RedHat's Python 2.6 + # break on it. See bug 939653. return sorted([(k,k) for k,v in fields.__dict__.iteritems() - if type(v) == types.TypeType - if issubclass(v, fields._column) - if v != fields._column - if not v._deprecated - if not issubclass(v, fields.function)]) + if type(v) == types.TypeType and \ + issubclass(v, fields._column) and \ + v != fields._column and \ + not v._deprecated and \ + not issubclass(v, fields.function)]) def _in_modules(self, cr, uid, ids, field_name, arg, context=None): #pseudo-method used by fields.function in ir.model/ir.model.fields