Package Products :: Package ZenWidgets :: Module PersistentMessage |
[hide private]
[frames] | no frames]

# Source Code for Module Products.ZenWidgets.PersistentMessage

     1  ##############################################################################
     2  #
     3  # Copyright (C) Zenoss, Inc. 2007, all rights reserved.
     4  #
     5  # This content is made available according to terms specified in
     6  # License.zenoss under the directory where your Zenoss product is installed.
     7  #
     8  ##############################################################################
     9
    10
    11  __doc__ = """
    12  This is in a separate module to prevent recursive import.
    13  """
    14
    15  import time
    16  from zope.interface import implements
    17
    18  from Products.ZenModel.ZenModelRM import ZenModelRM
    19  from Products.ZenRelations.RelSchema import *
    20  from Products.ZenWidgets.interfaces import IMessage
    21  from Products.ZenWidgets.messaging import INFO
    22
    23 -class PersistentMessage(ZenModelRM):
    24      """
    25      A single message. Messages are stored as relations on UserSettings and in
    26      the session object.
    27      """
    28      implements(IMessage)
    29
    30      _relations = (("messageQueue", ToOne(
    31        ToManyCont, "Products.ZenModel.UserSettings.UserSettings", "messages")
    32      ),)
    33
    34      title = None
    35      body = None
    36      timestamp = None
    37      priority = None
    38      _read = False
    39
    40 -    def __init__(self, id, title, body, priority=INFO, image=None):
    41          """
    42          Initialization method.
    43
    44          @param title: The message title
    45          @type title: str
    46          @param body: The body of the message
    47          @type body: str
    48          @param priority: Message priority; one of INFO, WARNING, CRITICAL
    49          @type priority: int
    50          @param image: Optional URL of an image to be displayed in the message
    51          @type image: str
    52          """
    53          super(PersistentMessage, self).__init__(id)
    54          self.title = title
    55          self.body = body
    56          self.priority = priority
    57          self.image = image
    58          self.timestamp = time.time()
    59
    60 -    def mark_as_read(self):
    61          """
    62          Mark this message as read.
    63          """
    64          self._read = True
    65
    66 -    def delete(self):
    67          """
    68          Delete this message from the system.
    69          """
    70          self.__primary_parent__._delObject(self.id)
    71