Log message for revision 92984: Forward-ported viewlet manager directive fix (see c69896).
Changed: U Zope/trunk/doc/CHANGES.txt U Zope/trunk/lib/python/Products/Five/viewlet/manager.py -=- Modified: Zope/trunk/doc/CHANGES.txt =================================================================== --- Zope/trunk/doc/CHANGES.txt 2008-11-15 18:00:32 UTC (rev 92983) +++ Zope/trunk/doc/CHANGES.txt 2008-11-15 18:02:16 UTC (rev 92984) @@ -219,6 +219,10 @@ Bugs Fixed + - Ported c69896 to Five. This fix makes it possible to provide a + template using Python, and not have it being set to `None` by + the viewlet manager directive. + - Made Five.testbrowser compatible with mechanize 0.1.7b. - Ensure that response header values cannot embed CRLF pairs, which Modified: Zope/trunk/lib/python/Products/Five/viewlet/manager.py =================================================================== --- Zope/trunk/lib/python/Products/Five/viewlet/manager.py 2008-11-15 18:00:32 UTC (rev 92983) +++ Zope/trunk/lib/python/Products/Five/viewlet/manager.py 2008-11-15 18:02:16 UTC (rev 92984) @@ -27,6 +27,8 @@ class ViewletManagerBase(origManagerBase): """A base class for Viewlet managers to work in Zope2""" + template = None + def __getitem__(self, name): """See zope.interface.common.mapping.IReadMapping""" # Find the viewlet @@ -75,9 +77,10 @@ return sorted(viewlets, lambda x, y: cmp(aq_base(x[1]), aq_base(y[1]))) def ViewletManager(name, interface, template=None, bases=()): - + attrDict = {'__name__': name} + if template is not None: - template = ZopeTwoPageTemplateFile(template) + attrDict['template'] = ZopeTwoPageTemplateFile(template) if ViewletManagerBase not in bases: # Make sure that we do not get a default viewlet manager mixin, if the @@ -87,8 +90,7 @@ bases = bases + (ViewletManagerBase,) ViewletManager = type( - '<ViewletManager providing %s>' % interface.getName(), - bases, - {'template': template, '__name__': name}) + '<ViewletManager providing %s>' % interface.getName(), bases, attrDict) + zope.interface.classImplements(ViewletManager, interface) return ViewletManager _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins