[Checkins] SVN: z3ext.statusmessage/trunk/ Fixed UnicodeEncodeError

Nikolay Kim fafhrd at datacom.kz
Fri Nov 21 03:48:18 EST 2008


Log message for revision 93224:
  Fixed UnicodeEncodeError

Changed:
  U   z3ext.statusmessage/trunk/CHANGES.txt
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/handler.py
  A   z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.pt
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.py
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/tests.py

-=-
Modified: z3ext.statusmessage/trunk/CHANGES.txt
===================================================================
--- z3ext.statusmessage/trunk/CHANGES.txt	2008-11-21 07:52:53 UTC (rev 93223)
+++ z3ext.statusmessage/trunk/CHANGES.txt	2008-11-21 08:48:17 UTC (rev 93224)
@@ -2,6 +2,12 @@
 CHANGES
 =======
 
+1.3.1 (2008-11-20)
+------------------
+
+- Fixed UnicodeEncodeError
+
+
 1.3.0 (2008-11-20)
 ------------------
 

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt	2008-11-21 07:52:53 UTC (rev 93223)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt	2008-11-21 08:48:17 UTC (rev 93224)
@@ -43,7 +43,7 @@
 
    >>> msg = component.getAdapter(request, interfaces.IMessage, 'info')
    >>> msg.render('Test message')
-   '<div class="statusMessage">Test message</div>'
+   u'<div class="statusMessage">Test message</div>'
 
 Now we can add messages.
 
@@ -53,7 +53,7 @@
    True
 
    >>> service.messages()
-   ['<div class="statusMessage">Test message</div>']
+   [u'<div class="statusMessage">Test message</div>']
 
 
 Let's register another message type.
@@ -63,7 +63,7 @@
    >>> service.add('Warning message', 'warning')
 
    >>> service.messages()
-   ['<div class="statusMessage">Test message</div>', '<div class="statusWarningMessage">Warning message</div>']
+   [u'<div class="statusMessage">Test message</div>', u'<div class="statusWarningMessage">Warning message</div>']
 
 Error message, we can add exception object
 

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/handler.py
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/handler.py	2008-11-21 07:52:53 UTC (rev 93223)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/handler.py	2008-11-21 08:48:17 UTC (rev 93224)
@@ -36,9 +36,11 @@
         messages = service.clear()
 
         if messages:
+            msg = u'\n'.join(messages)
+            msg = msg.encode('utf-8', 'ignore')
+
             body = response.consumeBody()
-            body = body.replace(
-                '<!--z3ext-statusmessage-->', str(u'\n'.join(messages)), 1)
+            body = body.replace('<!--z3ext-statusmessage-->', msg, 1)
             response.setResult(body)
 
     afterCall(self, request, ob)

Added: z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.pt
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.pt	                        (rev 0)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.pt	2008-11-21 08:48:17 UTC (rev 93224)
@@ -0,0 +1 @@
+<div tal:attributes="class view/cssClass" tal:content="options/message"></div>
\ No newline at end of file

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.py
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.py	2008-11-21 07:52:53 UTC (rev 93223)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/message.py	2008-11-21 08:48:17 UTC (rev 93224)
@@ -17,6 +17,7 @@
 """
 import cgi
 from zope import interface, component
+from zope.app.pagetemplate import ViewPageTemplateFile
 from zope.contentprovider.interfaces import IContentProvider
 from zope.publisher.interfaces.browser import IBrowserRequest
 
@@ -33,25 +34,33 @@
 
 class InformationMessage(Message):
 
+    cssClass = 'statusMessage'
+    index = ViewPageTemplateFile('message.pt')
+
+    @property
+    def context(self):
+        return self
+
     def render(self, message):
-        return '<div class="statusMessage">%s</div>'%message
+        return self.index(message=message)
 
 
-class WarningMessage(Message):
+class WarningMessage(InformationMessage):
 
-    def render(self, message):
-        return '<div class="statusWarningMessage">%s</div>'%message
+    cssClass = 'statusWarningMessage'
 
 
-class ErrorMessage(Message):
+class ErrorMessage(InformationMessage):
 
+    cssClass = 'statusStopMessage'
+
     def render(self, e):
         if isinstance(e, Exception):
             message = '%s: %s'%(e.__class__.__name__, cgi.escape(str(e), True))
         else:
             message = e
 
-        return '<div class="statusStopMessage">%s</div>'%message
+        return super(ErrorMessage, self).render(message)
 
 
 class StatusMessage(object):

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/tests.py
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/tests.py	2008-11-21 07:52:53 UTC (rev 93223)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/tests/tests.py	2008-11-21 08:48:17 UTC (rev 93224)
@@ -24,6 +24,7 @@
 from zope.publisher.interfaces.browser import IBrowserRequest
 from zope.app.testing.functional import ZCMLLayer
 from zope.app.testing.functional import FunctionalDocFileSuite
+from zope.traversing.testing import setUp as setUpTraversing
 from z3ext.statusmessage import message
 
 
@@ -50,6 +51,7 @@
 
 def setUp(test):
     setup.placelessSetUp()
+    setUpTraversing()
     component.provideAdapter(getSession)
     component.provideAdapter(message.StatusMessage, name='statusMessage')
 



More information about the Checkins mailing list