[Checkins] SVN: z3c.traverser/trunk/src/z3c/traverser/viewlet/ default view for viewlets is now the index.html view

Bernd Dorn bernd.dorn at lovelysystems.com
Fri May 4 02:03:02 EDT 2007


Log message for revision 75254:
  default view for viewlets is now the index.html view

Changed:
  U   z3c.traverser/trunk/src/z3c/traverser/viewlet/configure.zcml
  U   z3c.traverser/trunk/src/z3c/traverser/viewlet/namespace.py

-=-
Modified: z3c.traverser/trunk/src/z3c/traverser/viewlet/configure.zcml
===================================================================
--- z3c.traverser/trunk/src/z3c/traverser/viewlet/configure.zcml	2007-05-04 05:36:31 UTC (rev 75253)
+++ z3c.traverser/trunk/src/z3c/traverser/viewlet/configure.zcml	2007-05-04 06:03:01 UTC (rev 75254)
@@ -101,11 +101,4 @@
       provides="zope.publisher.interfaces.browser.IBrowserView"
       factory=".browser.ViewletView"/>
 
-  <!--
-  <browser:page
-      for="zope.viewlet.interfaces.IViewlet"
-      name="index.html"
-      class=".browser.ViewletView"
-      permission="zope.Public"/>
-  -->
 </configure>
\ No newline at end of file

Modified: z3c.traverser/trunk/src/z3c/traverser/viewlet/namespace.py
===================================================================
--- z3c.traverser/trunk/src/z3c/traverser/viewlet/namespace.py	2007-05-04 05:36:31 UTC (rev 75253)
+++ z3c.traverser/trunk/src/z3c/traverser/viewlet/namespace.py	2007-05-04 06:03:01 UTC (rev 75254)
@@ -2,8 +2,8 @@
 from zope import component
 from zope.publisher.interfaces import NotFound
 from zope.viewlet.interfaces import IViewletManager
+from zope.security.proxy import removeSecurityProxy
 
-
 class ViewletViewletManagerHandler(SimpleHandler):
 
     def __init__(self, context, request=None):
@@ -44,8 +44,15 @@
         self.request = request
 
     def traverse(self, name, ignored):
-        # Try to look up the provider.
+        # Try to look up the viewlet
         viewlet = self.context.get(name)
         if viewlet is None:
             raise NotFound(self.context, name, self.request)
+        viewlet = removeSecurityProxy(viewlet)
+        # hack: somehow in the viewlet metaconfigure it makes the
+        # viewlet class a IBrowserPublisher, which assumes that we
+        # have a call in browserdefault, so we have to replace this
+        # method.
+        viewlet.browserDefault = lambda r: (viewlet, ('index.html',))  
         return viewlet
+        



More information about the Checkins mailing list