Author: reebalazs
Date: Sun Sep 30 22:34:28 2007
New Revision: 47051

Modified:
   kukit/kss.demo/branch/ree-demoload/kss/demo/browser/registry.py
Log:
Make @@kss_demo_registry_admin/cookSeleniumTests work with Zope3

Modified: kukit/kss.demo/branch/ree-demoload/kss/demo/browser/registry.py
==============================================================================
--- kukit/kss.demo/branch/ree-demoload/kss/demo/browser/registry.py     
(original)
+++ kukit/kss.demo/branch/ree-demoload/kss/demo/browser/registry.py     Sun Sep 
30 22:34:28 2007
@@ -1,8 +1,12 @@
 
 from kss.demo.interfaces import IKSSDemoRegistry
+from zope.publisher.interfaces.browser import IBrowserPublisher
+from zope.publisher.interfaces import NotFound
 from zope.component import getUtility
+from zope.interface import implements
 try:
     from Products.Five import BrowserView
+    BrowserView         # make pyflakes happy
 except ImportError:
      from zope.publisher.browser import BrowserView
 
@@ -52,6 +56,31 @@
 
 class KSSDemoRegistryAdminView(BrowserView):
     """Things that only admin should do"""
+    implements(IBrowserPublisher)
+
+    # Zope3 requires the implementation of
+    # IBrowserPublisher, in order for the methods
+    # to be traversable.
+    #
+    # An alternative would be:
+    # <browser:pages class="...">
+    #   <page name="..." attribute="..." />
+    #   <page name="..." attribute="..." />
+    # </browser:pages>
+
+    def publishTraverse(self, request, name):
+        try:
+            return getattr(self, name)
+        except AttributeError:
+            raise NotFound(self.context, name, request)
+
+    def browserDefault(self, request):
+        # make ui the default method
+        return self, ('cookSeleniumTests', )
+
+    # --
+    # Accessable methods
+    # --
 
     def cookSeleniumTests(self):
         """Cook selenium tests
_______________________________________________
Kukit-checkins mailing list
[email protected]
http://codespeak.net/mailman/listinfo/kukit-checkins

Reply via email to