[Checkins] SVN: z3ext.statusmessage/trunk/ Handle error if session is not available

Nikolay Kim fafhrd at datacom.kz
Thu Nov 27 01:50:39 EST 2008


Log message for revision 93378:
  Handle error if session is not available

Changed:
  U   z3ext.statusmessage/trunk/CHANGES.txt
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/configure.zcml
  U   z3ext.statusmessage/trunk/src/z3ext/statusmessage/session.py

-=-
Modified: z3ext.statusmessage/trunk/CHANGES.txt
===================================================================
--- z3ext.statusmessage/trunk/CHANGES.txt	2008-11-27 01:58:44 UTC (rev 93377)
+++ z3ext.statusmessage/trunk/CHANGES.txt	2008-11-27 06:50:38 UTC (rev 93378)
@@ -2,6 +2,12 @@
 CHANGES
 =======
 
+1.3.3 (2008-11-27)
+------------------
+
+- Handle error if session is not available
+
+
 1.3.2 (2008-11-23)
 ------------------
 

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt	2008-11-27 01:58:44 UTC (rev 93377)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/README.txt	2008-11-27 06:50:38 UTC (rev 93378)
@@ -18,7 +18,7 @@
    >>> verifyClass(interfaces.IStatusMessage, session.MessageService)
    True
 
-   >>> component.provideAdapter(session.MessageService)
+   >>> component.provideAdapter(session.getMessageService)
 
    >>> from zope.publisher.browser import TestRequest
    >>> request = TestRequest()

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/configure.zcml
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/configure.zcml	2008-11-27 01:58:44 UTC (rev 93377)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/configure.zcml	2008-11-27 06:50:38 UTC (rev 93378)
@@ -16,7 +16,7 @@
      factory=".message.ErrorMessage" />
 
   <!-- default message service -->
-  <adapter factory=".session.MessageService" />
+  <adapter factory=".session.getMessageService" />
 
   <!-- browser views -->
   <adapter

Modified: z3ext.statusmessage/trunk/src/z3ext/statusmessage/session.py
===================================================================
--- z3ext.statusmessage/trunk/src/z3ext/statusmessage/session.py	2008-11-27 01:58:44 UTC (rev 93377)
+++ z3ext.statusmessage/trunk/src/z3ext/statusmessage/session.py	2008-11-27 06:50:38 UTC (rev 93378)
@@ -23,46 +23,52 @@
 from interfaces import SESSIONKEY, IMessage, IStatusMessage
 
 
+ at component.adapter(IBrowserRequest)
+ at interface.implementer(IStatusMessage)
+def getMessageService(request):
+    try:
+        session = ISession(request)
+    except:
+        return
+
+    return MessageService(request, session)
+
+
 class MessageService(object):
     """ message service """
-    component.adapts(IBrowserRequest)
+    component.adapts(IBrowserRequest, ISession)
     interface.implements(IStatusMessage)
 
-    def __init__(self, request):
+    def __init__(self, request, session):
         self.request = request
+        self.session = session
 
     def add(self, text, type='info'):
         message = getAdapter(self.request, IMessage, type)
 
-        session = ISession(self.request, None)
-        if session is not None:
-            try:
-                data = session[SESSIONKEY]
-                messages = data.get('messages', [])
-                messages.append(message.render(text))
-                data['messages'] = messages
-            except Exception, e:
-                print e
+        try:
+            data = self.session[SESSIONKEY]
+            messages = data.get('messages', [])
+            messages.append(message.render(text))
+            data['messages'] = messages
+        except Exception, e:
+            pass
 
     def clear(self):
-        session = ISession(self.request, None)
-        if session is not None:
-            data = session.get(SESSIONKEY)
-            if data is not None:
-                messages = data.get('messages')
-                if messages:
-                    del data['messages']
-                    return messages
+        data = self.session.get(SESSIONKEY)
+        if data is not None:
+            messages = data.get('messages')
+            if messages:
+                del data['messages']
+                return messages
         return ()
 
     def messages(self):
-        session = ISession(self.request, None)
-        if session is not None:
-            data = session.get(SESSIONKEY)
-            if data is not None:
-                messages = data.get('messages')
-                if messages:
-                    return messages
+        data = self.session.get(SESSIONKEY)
+        if data is not None:
+            messages = data.get('messages')
+            if messages:
+                return messages
         return ()
 
     def __nonzero__(self):



More information about the Checkins mailing list