From: Benoît Pin <pin@cri.ensmp.fr>
Date: Thu, 27 Jun 2013 08:15:53 +0000 (+0200)
Subject: On s'apprête à customiser le comportement aux requêtes PUT. Copie telle quelle du... 
X-Git-Url: https://scm.cri.minesparis.psl.eu/git/Plinn.git/commitdiff_plain/f1f87a16121bd95bd750f9ffe9ee1a5f36f78bdc

On s'apprête à customiser le comportement aux requêtes PUT. Copie telle quelle du code de OFS/ObjectManager.py.
---

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):