<?xml version="1.0" encoding="UTF-8" ?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><Project><name>z3ext.statusmessage</name>
<shortdesc>Status messages</shortdesc>
<description>Detailed Dcoumentation
======================


=====================
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.

   &gt;&gt;&gt; from zope import interface, component
   &gt;&gt;&gt; from zope.interface.verify import verifyClass

   &gt;&gt;&gt; from z3ext.statusmessage import interfaces, session, message

   &gt;&gt;&gt; verifyClass(interfaces.IStatusMessage, session.MessageService)
   True

   &gt;&gt;&gt; component.provideAdapter(session.MessageService)

   &gt;&gt;&gt; from zope.publisher.browser import TestRequest
   &gt;&gt;&gt; request = TestRequest()

   &gt;&gt;&gt; service = interfaces.IStatusMessage(request)

   &gt;&gt;&gt; bool(service)
   False

   &gt;&gt;&gt; service.add('Test message')
   Traceback (most recent call last):
   ...
   ComponentLookupError: ...

   &gt;&gt;&gt; service.clear()
   ()


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

   &gt;&gt;&gt; component.provideAdapter(message.InformationMessage, name='info')

   &gt;&gt;&gt; msg = component.getAdapter(request, interfaces.IMessage, 'info')
   &gt;&gt;&gt; msg.render('Test message')
   u'&lt;div class="statusMessage"&gt;Test message&lt;/div&gt;'

Now we can add messages.

   &gt;&gt;&gt; service.add('Test message')

   &gt;&gt;&gt; bool(service)
   True

   &gt;&gt;&gt; service.messages()
   [u'&lt;div class="statusMessage"&gt;Test message&lt;/div&gt;']


Let's register another message type.

   &gt;&gt;&gt; component.provideAdapter(message.WarningMessage, name='warning')

   &gt;&gt;&gt; service.add('Warning message', 'warning')

   &gt;&gt;&gt; service.messages()
   [u'&lt;div class="statusMessage"&gt;Test message&lt;/div&gt;', u'&lt;div class="statusWarningMessage"&gt;Warning message&lt;/div&gt;']

Error message, we can add exception object

   &gt;&gt;&gt; component.provideAdapter(message.ErrorMessage, name='error')

   &gt;&gt;&gt; service.add(Exception('Error message'), 'error')

or text message

   &gt;&gt;&gt; service.add('Error message', 'error')

   &gt;&gt;&gt; for msg in service.messages():
   ...     print msg
   &lt;div class="statusMessage"&gt;Test message&lt;/div&gt;
   &lt;div class="statusWarningMessage"&gt;Warning message&lt;/div&gt;
   &lt;div class="statusStopMessage"&gt;Exception: Error message&lt;/div&gt;
   &lt;div class="statusStopMessage"&gt;Error message&lt;/div&gt;


Clearing service
----------------

clear() method return all messages and clear service.

   &gt;&gt;&gt; for msg in service.clear():
   ...     print msg
   &lt;div class="statusMessage"&gt;Test message&lt;/div&gt;
   &lt;div class="statusWarningMessage"&gt;Warning message&lt;/div&gt;
   &lt;div class="statusStopMessage"&gt;Exception: Error message&lt;/div&gt;
   &lt;div class="statusStopMessage"&gt;Error message&lt;/div&gt;

   &gt;&gt;&gt; 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.</description>
<homepage rdf:resource="http://z3ext.net/" />
<maintainer><foaf:Person><foaf:name>Nikolay Kim</foaf:name>
<foaf:mbox_sha1sum>d2ae7e827893a4b491ceed859306c037152b761c</foaf:mbox_sha1sum></foaf:Person></maintainer>
<release><Version><revision>1.3.1</revision></Version></release>
</Project></rdf:RDF>