Log message for revision 97666: - replaced getattr by aq_get - whitespace cleanup
Changed: U Zope/trunk/doc/CHANGES.rst U Zope/trunk/src/Products/PageTemplates/unicodeconflictresolver.py -=- Modified: Zope/trunk/doc/CHANGES.rst =================================================================== --- Zope/trunk/doc/CHANGES.rst 2009-03-08 13:30:52 UTC (rev 97665) +++ Zope/trunk/doc/CHANGES.rst 2009-03-08 14:09:12 UTC (rev 97666) @@ -35,6 +35,9 @@ Bugs Fixed ++++++++++ +- PageTemplates: Made PreferredCharsetResolver work with new kinds of contexts + that are not acquisition wrapped. + - Object managers should evaluate to True in a boolean test. 2.12.0a1 (2009-02-26) Modified: Zope/trunk/src/Products/PageTemplates/unicodeconflictresolver.py =================================================================== --- Zope/trunk/src/Products/PageTemplates/unicodeconflictresolver.py 2009-03-08 13:30:52 UTC (rev 97665) +++ Zope/trunk/src/Products/PageTemplates/unicodeconflictresolver.py 2009-03-08 14:09:12 UTC (rev 97666) @@ -10,16 +10,21 @@ # FOR A PARTICULAR PURPOSE # ############################################################################## +"""Unicode conflict resolution. +$Id$ +""" + import sys +from Acquisition import aq_get +from Products.PageTemplates.interfaces import IUnicodeEncodingConflictResolver from zope.interface import implements from zope.i18n.interfaces import IUserPreferredCharsets -from Products.PageTemplates.interfaces import IUnicodeEncodingConflictResolver - default_encoding = sys.getdefaultencoding() + class DefaultUnicodeEncodingConflictResolver: """ This resolver implements the old-style behavior and will raise an exception in case of the string 'text' can't be converted @@ -53,6 +58,7 @@ encoding = getattr(context, 'management_page_charset', default_encoding) return unicode(text, encoding, self.mode) + class PreferredCharsetResolver: """ A resolver that tries use the encoding information from the HTTP_ACCEPT_CHARSET header. @@ -62,7 +68,7 @@ def resolve(self, context, text, expression): - request = getattr(context, 'REQUEST', None) + request = aq_get(context, 'REQUEST', None) # Deal with the fact that a REQUEST is not always available. # In this case fall back to the encoding of the ZMI and the @@ -74,7 +80,7 @@ if management_charset: charsets.insert(0, management_charset) else: - # charsets might by cached within the request + # charsets might by cached within the request charsets = getattr(request, '__zpt_available_charsets', None) # No uncached charsets found: investigate the HTTP_ACCEPT_CHARSET @@ -86,12 +92,12 @@ charsets = list() # add Python's default encoding as last fallback - charsets.append(default_encoding) + charsets.append(default_encoding) # include the charsets based on the HTTP_ACCEPT_CHARSET # header charsets = IUserPreferredCharsets(request).getPreferredCharsets() +\ - charsets + charsets # cache list of charsets request.__zpt_available_charsets = charsets _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins