skip to navigation
skip to content

Not Logged In

z3ext.statusmessage 1.3.1

Status messages

Latest Version: 1.3.8

Portal status message

Instead include notification messages directly to template, developer can use messaging service.

Main interface is IStatusMessage, it is adapter for IBrowserRequest so we can have different implementations, for example cookie based or session.

By default only session based service implemented.

>>> from zope import interface, component
>>> from zope.interface.verify import verifyClass
>>> from z3ext.statusmessage import interfaces, session, message
>>> verifyClass(interfaces.IStatusMessage, session.MessageService)
True
>>> component.provideAdapter(session.MessageService)
>>> from zope.publisher.browser import TestRequest
>>> request = TestRequest()
>>> service = interfaces.IStatusMessage(request)
>>> bool(service)
False
>>> service.add('Test message')
Traceback (most recent call last):
...
ComponentLookupError: ...
>>> service.clear()
()

Before we can use message service we need register message type.

>>> component.provideAdapter(message.InformationMessage, name='info')
>>> msg = component.getAdapter(request, interfaces.IMessage, 'info')
>>> msg.render('Test message')
u'<div class="statusMessage">Test message</div>'

Now we can add messages.

>>> service.add('Test message')
>>> bool(service)
True
>>> service.messages()
[u'<div class="statusMessage">Test message</div>']

Let's register another message type.

>>> component.provideAdapter(message.WarningMessage, name='warning')
>>> service.add('Warning message', 'warning')
>>> service.messages()
[u'<div class="statusMessage">Test message</div>', u'<div class="statusWarningMessage">Warning message</div>']

Error message, we can add exception object

>>> component.provideAdapter(message.ErrorMessage, name='error')
>>> service.add(Exception('Error message'), 'error')

or text message

>>> service.add('Error message', 'error')
>>> for msg in service.messages():
...     print msg
<div class="statusMessage">Test message</div>
<div class="statusWarningMessage">Warning message</div>
<div class="statusStopMessage">Exception: Error message</div>
<div class="statusStopMessage">Error message</div>

Clearing service

clear() method return all messages and clear service.

>>> for msg in service.clear():
...     print msg
<div class="statusMessage">Test message</div>
<div class="statusWarningMessage">Warning message</div>
<div class="statusStopMessage">Exception: Error message</div>
<div class="statusStopMessage">Error message</div>
>>> bool(service)
False

CHANGES

1.3.1 (2008-11-21)

  • Fixed UnicodeEncodeError

1.3.0 (2008-11-20)

  • API refactored
  • Allow add messages at any stage of page processing

1.2.1 (2008-05-14)

  • Replace 'autoinclude' with 'includeDependendcies'

1.2.0 (2008-03-21)

  • rename to z3ext.statusmessage
  • moved to svn.zope.org

1.1.0 (2008-03-18)

  • Use z3c.autoinclude
  • Code cleanup

1.0.0 (2007-12-08)

  • Initial release.
File Type Py Version Uploaded on Size # downloads
z3ext.statusmessage-1.3.1.tar.gz (md5) Source 2008-11-21 08:52:40 8KB 48