Log message for revision 93423: Revert to the standard Zope 3 provider-expression; this is reasonable and required after the sane acquisition branch has been merged.
Changed: U Zope/trunk/doc/CHANGES.txt D Zope/trunk/lib/python/Products/Five/browser/providerexpression.py U Zope/trunk/lib/python/Products/PageTemplates/Expressions.py -=- Modified: Zope/trunk/doc/CHANGES.txt =================================================================== --- Zope/trunk/doc/CHANGES.txt 2008-11-28 12:59:43 UTC (rev 93422) +++ Zope/trunk/doc/CHANGES.txt 2008-11-28 14:06:04 UTC (rev 93423) @@ -223,6 +223,11 @@ Bugs Fixed + - After the proper introduction of parent-pointers, it's now + wrong to acquisition-wrap content providers. We will now use + the "classic" content provider expression from Zope + 3. [malthe] + - Testing.ZopeTestCase: Remove quota argument from DemoStorage calls in preparation for ZODB 3.9. Deleted: Zope/trunk/lib/python/Products/Five/browser/providerexpression.py =================================================================== --- Zope/trunk/lib/python/Products/Five/browser/providerexpression.py 2008-11-28 12:59:43 UTC (rev 93422) +++ Zope/trunk/lib/python/Products/Five/browser/providerexpression.py 2008-11-28 14:06:04 UTC (rev 93423) @@ -1,63 +0,0 @@ -############################################################################## -# -# Copyright (c) 2006 Zope Corporation and Contributors. -# All Rights Reserved. -# -# This software is subject to the provisions of the Zope Public License, -# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. -# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED -# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS -# FOR A PARTICULAR PURPOSE. -# -############################################################################## -"""Provider expression. -""" -import zope.event -import zope.interface -import zope.component - -from zope.tales import expressions -from zope.contentprovider import interfaces, tales -from zope.location.interfaces import ILocation - -from Acquisition.interfaces import IAcquirer - -class Z2ProviderExpression(expressions.StringExpr): - zope.interface.implements(interfaces.ITALESProviderExpression) - - # This is mostly a copy of - # zope.contentprovider.tales.TALESProviderExpression's __call__ - # method. - def __call__(self, econtext): - name = super(Z2ProviderExpression, self).__call__(econtext) - context = econtext.vars['context'] - request = econtext.vars['request'] - view = econtext.vars['view'] - - # Try to look up the provider. - provider = zope.component.queryMultiAdapter( - (context, request, view), interfaces.IContentProvider, name) - - # Provide a useful error message, if the provider was not found. - if provider is None: - raise interfaces.ContentProviderLookupError(name) - - # add the __name__ attribute if it implements ILocation - if ILocation.providedBy(provider): - provider.__name__ = name - - # ATTN: This is where we are different from - # TALESProviderExpression: We support Acquisition wrapping. - if IAcquirer.providedBy(provider): - provider = provider.__of__(context) - - # Insert the data gotten from the context - tales.addTALNamespaceData(provider, econtext) - - # Stage 1: Do the state update. - zope.event.notify(interfaces.BeforeUpdateEvent(provider, request)) - provider.update() - - # Stage 2: Render the HTML content. - return provider.render() Modified: Zope/trunk/lib/python/Products/PageTemplates/Expressions.py =================================================================== --- Zope/trunk/lib/python/Products/PageTemplates/Expressions.py 2008-11-28 12:59:43 UTC (rev 93422) +++ Zope/trunk/lib/python/Products/PageTemplates/Expressions.py 2008-11-28 14:06:04 UTC (rev 93423) @@ -36,7 +36,7 @@ from Acquisition import aq_base from zExceptions import NotFound, Unauthorized -from Products.Five.browser.providerexpression import Z2ProviderExpression +from zope.contentprovider.tales import TALESProviderExpression from Products.PageTemplates import ZRPythonExpr from Products.PageTemplates.DeferExpr import LazyExpr from Products.PageTemplates.GlobalTranslationService import getGlobalTranslationService @@ -334,7 +334,7 @@ e.registerType('not', NotExpr) e.registerType('defer', DeferExpr) e.registerType('lazy', LazyExpr) - e.registerType('provider', Z2ProviderExpression) + e.registerType('provider', TALESProviderExpression) e.registerBaseName('modules', SecureModuleImporter) return e _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins