Log message for revision 78454: Freed viewlets from their Acquisition chains
Changed: U Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/README.txt U Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/manager.py U Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/viewlet.py -=- Modified: Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/README.txt =================================================================== --- Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/README.txt 2007-07-29 10:50:15 UTC (rev 78453) +++ Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/README.txt 2007-07-29 10:58:03 UTC (rev 78454) @@ -89,8 +89,7 @@ >>> from zope.publisher.interfaces.browser import IDefaultBrowserLayer >>> from zope.publisher.interfaces.browser import IBrowserView - >>> from Acquisition import Explicit - >>> class WeatherBox(Explicit): + >>> class WeatherBox(object): ... zope.interface.implements(interfaces.IViewlet) ... ... def __init__(self, context, request, view, manager): @@ -109,7 +108,7 @@ ... IBrowserView, ILeftColumn), ... interfaces.IViewlet, name='weather') - >>> class SportBox(Explicit): + >>> class SportBox(object): ... zope.interface.implements(interfaces.IViewlet) ... ... def __init__(self, context, request, view, manager): @@ -311,7 +310,7 @@ >>> foo.render() Traceback (most recent call last): ... - AttributeError: bar + AttributeError: 'FooViewlet' object has no attribute 'bar' To create simple template-based viewlets you can use the ``SimpleViewletClass()`` function. This function is very similar to its view @@ -365,7 +364,7 @@ The viewlet will look up the resource it was given and tries to produce the absolute URL for it: - >>> class JSResource(Explicit): + >>> class JSResource(object): ... def __init__(self, request): ... self.request = request ... @@ -381,7 +380,7 @@ The same works for the CSS resource viewlet: - >>> class CSSResource(Explicit): + >>> class CSSResource(object): ... def __init__(self, request): ... self.request = request ... @@ -487,7 +486,7 @@ >>> shownColumns = [] - >>> class ContentsViewletManager(Explicit): + >>> class ContentsViewletManager(object): ... zope.interface.implements(interfaces.IViewletManager) ... index = None ... @@ -562,7 +561,7 @@ Now let's create a first viewlet for the manager... - >>> class NameViewlet(Explicit): + >>> class NameViewlet(object): ... ... def __init__(self, context, request, view, manager): ... self.__parent__ = view @@ -635,7 +634,7 @@ Let's now write a second viewlet that will display the size of the object for us: - >>> class SizeViewlet(Explicit): + >>> class SizeViewlet(object): ... ... def __init__(self, context, request, view, manager): ... self.__parent__ = view Modified: Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/manager.py =================================================================== --- Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/manager.py 2007-07-29 10:50:15 UTC (rev 78453) +++ Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/manager.py 2007-07-29 10:58:03 UTC (rev 78454) @@ -15,7 +15,7 @@ $Id$ """ -import Acquisition +from Acquisition import aq_base from AccessControl.ZopeGuards import guarded_hasattr import zope.interface import zope.security @@ -24,9 +24,7 @@ from Products.Five.browser.pagetemplatefile import ZopeTwoPageTemplateFile -aq_base = Acquisition.aq_base - -class ViewletManagerBase(origManagerBase, Acquisition.Explicit): +class ViewletManagerBase(origManagerBase): """A base class for Viewlet managers to work in Zope2""" def __getitem__(self, name): Modified: Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/viewlet.py =================================================================== --- Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/viewlet.py 2007-07-29 10:50:15 UTC (rev 78453) +++ Zope/branches/philikon-aq/lib/python/Products/Five/viewlet/viewlet.py 2007-07-29 10:58:03 UTC (rev 78454) @@ -16,16 +16,14 @@ $Id$ """ import os -from Acquisition import Explicit from zope.viewlet import viewlet as orig_viewlet from Products.Five.browser.pagetemplatefile import ZopeTwoPageTemplateFile -# We add Acquisition to all the base classes to enable security machinery -class ViewletBase(orig_viewlet.ViewletBase, Explicit): +class ViewletBase(orig_viewlet.ViewletBase): pass -class SimpleAttributeViewlet(orig_viewlet.SimpleAttributeViewlet, Explicit): +class SimpleAttributeViewlet(orig_viewlet.SimpleAttributeViewlet): pass class simple(orig_viewlet.simple): @@ -52,7 +50,7 @@ return class_ -class ResourceViewletBase(orig_viewlet.ResourceViewletBase, Explicit): +class ResourceViewletBase(orig_viewlet.ResourceViewletBase): pass def JavaScriptViewlet(path): _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins