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 |