X-Git-Url: https://scm.cri.mines-paristech.fr/git/Plinn.git/blobdiff_plain/27df903f6dda540e17d94b0c5ce00f25fa03e5bf..f1f87a16121bd95bd750f9ffe9ee1a5f36f78bdc:/Folder.py?ds=sidebyside diff --git a/Folder.py b/Folder.py index 0d395be..9808810 100644 --- a/Folder.py +++ b/Folder.py @@ -33,6 +33,7 @@ from cgi import escape from OFS import Moniker from ZODB.POSException import ConflictError import OFS.subscribers +from webdav.NullResource import NullResource from zope.event import notify from zope.lifecycleevent import ObjectCopiedEvent try : @@ -81,6 +82,18 @@ class PlinnFolder(CMFCatalogAware, PortalFolder, DefaultDublinCoreImpl) : def __init__( self, id, title='' ) : PortalFolder.__init__(self, id) DefaultDublinCoreImpl.__init__(self, title = title) + + def __getitem__(self, key): + if key in self: + return self._getOb(key, None) + request = getattr(self, 'REQUEST', None) + if not isinstance(request, (str, NoneType)): + method=request.get('REQUEST_METHOD', 'GET') + if (request.maybe_webdav_client and + method not in ('GET', 'POST')): + return NullResource(self, key, request).__of__(self) + raise KeyError, key + security.declarePublic('allowedContentTypes') def allowedContentTypes(self):