src/pyams_content/features/alert/__init__.py
changeset 879 47173c13e118
parent 841 d50743e69693
child 902 e62d6ef786d0
equal deleted inserted replaced
878:6bc257d7f53f 879:47173c13e118
    21 from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION
    21 from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION
    22 from pyams_content.reference.pictograms import IPictogramTable
    22 from pyams_content.reference.pictograms import IPictogramTable
    23 from pyams_form.interfaces.form import IFormContextPermissionChecker
    23 from pyams_form.interfaces.form import IFormContextPermissionChecker
    24 
    24 
    25 # import packages
    25 # import packages
    26 from pyams_sequence.reference import get_reference_target
    26 from pyams_content.component.links import InternalReferenceMixin
    27 from pyams_utils.adapter import adapter_config, ContextAdapter
    27 from pyams_utils.adapter import adapter_config, ContextAdapter
    28 from pyams_utils.registry import query_utility
    28 from pyams_utils.registry import query_utility
    29 from pyams_utils.zodb import volatile_property
    29 from pyams_utils.zodb import volatile_property
    30 from zope.container.contained import Contained
    30 from zope.container.contained import Contained
    31 from zope.interface import implementer
    31 from zope.interface import implementer
    32 from zope.schema.fieldproperty import FieldProperty
    32 from zope.schema.fieldproperty import FieldProperty
    33 
    33 
    34 
    34 
    35 @implementer(IAlertItem)
    35 @implementer(IAlertItem)
    36 class AlertItem(Persistent, Contained):
    36 class AlertItem(Persistent, Contained, InternalReferenceMixin):
    37     """Alert item persistent class"""
    37     """Alert item persistent class"""
    38 
    38 
    39     visible = FieldProperty(IAlertItem['visible'])
    39     visible = FieldProperty(IAlertItem['visible'])
    40     gravity = FieldProperty(IAlertItem['gravity'])
    40     gravity = FieldProperty(IAlertItem['gravity'])
    41     header = FieldProperty(IAlertItem['header'])
    41     header = FieldProperty(IAlertItem['header'])
    59     @volatile_property
    59     @volatile_property
    60     def pictogram(self):
    60     def pictogram(self):
    61         table = query_utility(IPictogramTable)
    61         table = query_utility(IPictogramTable)
    62         return table.get(self.pictogram_name)
    62         return table.get(self.pictogram_name)
    63 
    63 
    64     @volatile_property
       
    65     def target(self):
       
    66         return get_reference_target(self.reference)
       
    67 
       
    68     def get_target(self, state=None):
       
    69         if not state:
       
    70             return self.target
       
    71         else:
       
    72             return get_reference_target(self.reference)
       
    73 
       
    74 
    64 
    75 @adapter_config(context=IAlertItem, provides=IFormContextPermissionChecker)
    65 @adapter_config(context=IAlertItem, provides=IFormContextPermissionChecker)
    76 class AlertitemPermissionChecker(ContextAdapter):
    66 class AlertitemPermissionChecker(ContextAdapter):
    77     """Alert item permission checker"""
    67     """Alert item permission checker"""
    78 
    68