[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