Skip to content

Notification_System

Mo Morsi edited this page Jan 9, 2013 · 4 revisions

title: Notification_System
updated_on: Tue Sep 18 11:49:40 ~~0400 2012\

\
h1. Notification System
\
This page describes an outline for adding a more robust notifications
system to Conductor. It is somewhat based on task \#3623.
\
h2. Background
\
In Conductor today, our “Alerts” are not a true model~~- we merely list
failed instances (or something along those lines). We want to add actual
notifications, which can be dismissed. Much of the impetus for this
comes from \#3623 but it is generally useful in any event.

Features
--------

From some discussion, it seems like we need:\
\* The ability to target a notification to multiple users, or a group of
users based on Role (e.g., all Global Administrators, and the owner of a
deployable)\
\* A system to easily translate notifications: in other words,
notifications should be a dictionary key rather than straight text.\
\* Dismissable notifications shown in the UI\
\* Email notifications

We may want to add configurable notification preferences for users as
well, since different users might care about different notifications
available to them.

It is important to note that Conductor plans on tight integration with
Converge-UI. This means that much of the UI and styling decisions will
be made for us.

Prior Work
----------

Katello already has a notification system that allows the following:

-   alert multiple users
-   track what has been viewed
-   set a notification level

See their
[lib/notifications/notifier.rb](https://github.com/Katello/katello/blob/master/src/lib/notifications/notifier.rb)
and
[app/models/notice.rb](https://github.com/Katello/katello/blob/master/src/app/models/notice.rb)
for some implementation information. Also, see the “Attached
screenshots” section below.

Initial Implementation
----------------------

The initial implementation will be a modified version of the Katello
notification system. Modifications include:

-   replacing organization associations with a polymorphic association
-   having notifications store a dictionary key rather than straight
    text

Notifications will be added in parallel to current Conductor events,
with an eye on potentially replacing events in the future.

For the UI portion, we will rely on Converge UI to provide the
following:

-   header notifications
-   notifications center

Until that is ready, a basic notifications index page will be created.

Future Work
-----------

-   Work on common notifications module with Katello
-   E-mail notifications
-   Decide whether we can replace events

Attached screenshots
--------------------

These show an example of the Katello implementation. Also note the “6”
in the header, indicating 6 unread notifications:

![](03.png)\
![](23.png)
Clone this wiki locally