[z3-checkins] r5654 - z3/Five/branch/dc-experiments

dreamcatcher at codespeak.net dreamcatcher at codespeak.net
Sat Jul 24 22:35:55 MEST 2004


Author: dreamcatcher
Date: Sat Jul 24 22:35:55 2004
New Revision: 5654

Modified:
   z3/Five/branch/dc-experiments/viewable.py
Log:

- Try to use an ITraverser adapter. This enables the use of namespaces,
  like ++resource++. Now that I think about it, we should probably
  change five:viewable to five:traversable, as this makes more sense.



Modified: z3/Five/branch/dc-experiments/viewable.py
==============================================================================
--- z3/Five/branch/dc-experiments/viewable.py	(original)
+++ z3/Five/branch/dc-experiments/viewable.py	Sat Jul 24 22:35:55 2004
@@ -10,10 +10,11 @@
 
 $Id$
 """
-from webdav.NullResource import NullResource
+from zope.exceptions import NotFoundError
 from zope.component import getView, ComponentLookupError
 from zope.interface import implements
 from zope.publisher.interfaces.browser import IBrowserRequest
+from zope.app.traversing.interfaces import ITraverser
 from monkey import DebugFlags
 
 class FakeRequest:
@@ -53,6 +54,11 @@
         except ComponentLookupError:
             pass
         try:
+            kw = dict(path=[name], request=REQUEST)
+            return ITraverser(self).traverse(**kw).__of__(self)
+        except (ComponentLookupError, NotFoundError, AttributeError):
+            pass
+        try:
             return getattr(self, name)
         except AttributeError:
             pass
@@ -60,5 +66,4 @@
             return self[name]
         except (AttributeError, KeyError):
             pass
-
         return self.__fallback_traverse__(REQUEST, name)


More information about the z3-checkins mailing list