try: return self.backend.__iter__() except Exception, e: logger.error(str(e)) return iter(list()) iterkeys = __iter__ @locktree def __getitem__(self, name): # XXX: temporary hack until paster/webob/pyramid handle urllib # quoted slashes in path components name = unquote_slash(name) try: return BaseNode.__getitem__(self, name) except KeyError: try: model = self.backend[name] except AttributeError: raise KeyError(name) user = User(model, name, self) self[name] = user return user info = BaseNodeInfo() info.title = 'Users' info.description = 'Users Container.' info.node = Users info.addables = ['user'] info.icon = 'cone.ugm.static/images/users16_16.png' registerNodeInfo('users', info)