doc/book/en/devrepo/repo/notifications.rst
author Julien Cristau <julien.cristau@logilab.fr>
Thu, 13 Jun 2013 12:01:23 +0200
changeset 9006 e4ea8f9ffa11
parent 8928 f5b40b66d36e
permissions -rw-r--r--
notification: use viewargs for notif_entity_updated instead of transaction_data Now that notifications use separate sessions, they can't rely on the original transaction_data being around, so pass the data through view arguments instead, so the notification view knows what changed on updated entities. Closes #2936180

.. -*- coding: utf-8 -*-

Notifications management
========================

CubicWeb provides a machinery to ease notifications handling. To use it for a
notification:

* write a view inheriting from
  :class:`~cubicweb.sobjects.notification.NotificationView`.  The usual view api
  is used to generated the email (plain text) content, and additional
  :meth:`~cubicweb.sobjects.notification.NotificationView.subject` and
  :meth:`~cubicweb.sobjects.notification.NotificationView.recipients` methods
  are used to build the email's subject and
  recipients. :class:`NotificationView` provides default implementation for both
  methods.

* write a hook for event that should trigger this notification, select the view
  (without rendering it), and give it to
  :func:`cubicweb.hooks.notification.notify_on_commit` so that the notification
  will be sent if the transaction succeed.


.. XXX explain recipient finder and provide example

API details
~~~~~~~~~~~
.. autoclass:: cubicweb.sobjects.notification.NotificationView
.. autofunction:: cubicweb.hooks.notification.notify_on_commit