[Checkins] SVN: grokcore.view/trunk/ simplify the DirectoryResource and DirectoryResourceFactory implementations by making better use of the hooks in zope.app.publisher.browser.directoryresource

Jan-Wijbrand Kolman janwijbrand at gmail.com
Wed Apr 15 09:45:10 EDT 2009


Log message for revision 99190:
  simplify the DirectoryResource and DirectoryResourceFactory implementations by making better use of the hooks in zope.app.publisher.browser.directoryresource

Changed:
  U   grokcore.view/trunk/CHANGES.txt
  U   grokcore.view/trunk/setup.py
  U   grokcore.view/trunk/src/grokcore/view/components.py

-=-
Modified: grokcore.view/trunk/CHANGES.txt
===================================================================
--- grokcore.view/trunk/CHANGES.txt	2009-04-15 12:10:24 UTC (rev 99189)
+++ grokcore.view/trunk/CHANGES.txt	2009-04-15 13:45:10 UTC (rev 99190)
@@ -4,9 +4,10 @@
 1.6 (unreleased)
 ----------------
 
-- Nothing changed yet.
+- Simplify the DirectoryResource and DirectoryResourceFactory
+  implementations by making better use of the hook points provided by
+  zope.app.publisher.browser.directoryresource.
 
-
 1.5 (2009-04-10)
 ----------------
 

Modified: grokcore.view/trunk/setup.py
===================================================================
--- grokcore.view/trunk/setup.py	2009-04-15 12:10:24 UTC (rev 99189)
+++ grokcore.view/trunk/setup.py	2009-04-15 13:45:10 UTC (rev 99190)
@@ -34,12 +34,12 @@
     zip_safe=False,
     install_requires=['setuptools',
                       'martian >= 0.10',
-                      'grokcore.component >= 1.5.1',
+                      'grokcore.component >= 1.5',
                       'grokcore.security',
                       'zope.schema',
                       'zope.security',
                       'zope.traversing',
-                      'zope.app.publisher',
+                      'zope.app.publisher >= 3.5',
                       'zope.app.pagetemplate',
                       # for ftests:
                       # TODO move these to extra_requires?

Modified: grokcore.view/trunk/src/grokcore/view/components.py
===================================================================
--- grokcore.view/trunk/src/grokcore/view/components.py	2009-04-15 12:10:24 UTC (rev 99189)
+++ grokcore.view/trunk/src/grokcore/view/components.py	2009-04-15 13:45:10 UTC (rev 99190)
@@ -37,7 +37,7 @@
     def __init__(self, context, request):
         super(View, self).__init__(context, request)
         self.__name__ = getattr(self, '__view_name__', None)
-        
+
         if getattr(self, 'module_info', None) is not None:
             self.static = component.queryAdapter(
                 self.request,
@@ -237,10 +237,8 @@
         self.setFromFilename(filename, _prefix)
 
 class DirectoryResource(directoryresource.DirectoryResource):
-    # We subclass this, because we want to override the default factories for
-    # the resources so that .pt and .html do not get created as page
-    # templates
-
+    # We subclass this, because we want to override factories for
+    # .pt and .html file types, not creating pagetemplate resources.
     resource_factories = {}
     for type, factory in (directoryresource.DirectoryResource.
                           resource_factories.items()):
@@ -248,15 +246,12 @@
             continue
         resource_factories[type] = factory
 
+    # Hook for our own DirectoryResourceFactory. Can only be set *after*
+    # having defined the DirectoryResourceFactory class.
+    directory_factory = None
+
 class DirectoryResourceFactory(directoryresource.DirectoryResourceFactory):
-    # We need this to allow hooking up our own GrokDirectoryResource
-    # and to set the checker to None (until we have our own checker)
+    # We need this to allow hooking up our own DirectoryResource class.
+    factoryClass = DirectoryResource
 
-    def __call__(self, request):
-        # Override this method for the following line, in which our
-        # custom DirectoryResource class is instantiated.
-        resource = DirectoryResource(self.__dir, request)
-        resource.directory_factory = DirectoryResourceFactory
-        resource.__Security_checker__ = self.__checker
-        resource.__name__ = self.__name
-        return resource
+DirectoryResource.directory_factory = DirectoryResourceFactory



More information about the Checkins mailing list