[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