14 |
14 |
15 |
15 |
16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 # import interfaces |
19 from pyams_content.component.theme.interfaces import IPortletThemesSettings, IPortletThemesSettingsTarget, \ |
19 from pyams_content.component.theme.interfaces import \ |
20 PORTLET_SETTINGS_THEMES_KEY |
20 IPortletThemesSettings, IPortletThemesSettingsTarget, PORTLET_SETTINGS_THEMES_KEY, \ |
|
21 IPortletTagsSettings, IPortletTagsSettingsTarget, PORTLET_SETTINGS_TAGS_KEY, \ |
|
22 IPortletCollectionsSettings, IPortletCollectionsSettingsTarget, PORTLET_SETTINGS_COLLECTIONS_KEY |
21 from zope.traversing.interfaces import ITraversable |
23 from zope.traversing.interfaces import ITraversable |
22 |
24 |
23 # import packages |
25 # import packages |
24 from persistent import Persistent |
26 from persistent import Persistent |
25 from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter |
27 from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter |
26 from zope.container.contained import Contained |
28 from zope.container.contained import Contained |
27 from zope.interface import implementer |
29 from zope.interface import implementer |
|
30 from zope.schema.fieldproperty import FieldProperty |
28 |
31 |
|
32 |
|
33 # |
|
34 # Portlets tags management |
|
35 # |
|
36 |
|
37 @implementer(IPortletTagsSettings) |
|
38 class PortletTagsSettings(Persistent, Contained): |
|
39 """Portlet tags settings""" |
|
40 |
|
41 tags = FieldProperty(IPortletTagsSettings['tags']) |
|
42 |
|
43 |
|
44 @adapter_config(context=IPortletTagsSettingsTarget, provides=IPortletTagsSettings) |
|
45 def portlet_tags_settings_factory(context): |
|
46 """Portlet tags settings adapter""" |
|
47 return get_annotation_adapter(context, PORTLET_SETTINGS_TAGS_KEY, PortletTagsSettings, |
|
48 name='++tags++') |
|
49 |
|
50 |
|
51 @adapter_config(name='tags', context=IPortletTagsSettingsTarget, provides=ITraversable) |
|
52 class TagsPortletsSettingsTraverser(ContextAdapter): |
|
53 """++tags++ portlet settings adapter""" |
|
54 |
|
55 def traverse(self, name, furtherpath=None): |
|
56 return IPortletTagsSettings(self.context) |
|
57 |
|
58 |
|
59 # |
|
60 # Portlets themes management |
|
61 # |
29 |
62 |
30 @implementer(IPortletThemesSettings) |
63 @implementer(IPortletThemesSettings) |
31 class PortletThemesSettings(Persistent, Contained): |
64 class PortletThemesSettings(Persistent, Contained): |
32 """Portlet themes settings""" |
65 """Portlet themes settings""" |
33 |
66 |
|
67 themes = FieldProperty(IPortletThemesSettings['themes']) |
|
68 |
34 |
69 |
35 @adapter_config(context=IPortletThemesSettingsTarget, provides=IPortletThemesSettings) |
70 @adapter_config(context=IPortletThemesSettingsTarget, provides=IPortletThemesSettings) |
36 def portlet_themes_settings_factory(context): |
71 def portlet_themes_settings_factory(context): |
37 """Portlet themes settings adapter""" |
72 """Portlet themes settings adapter""" |
38 return get_annotation_adapter(context, PORTLET_SETTINGS_THEMES_KEY, PortletThemesSettings, name='++themes++') |
73 return get_annotation_adapter(context, PORTLET_SETTINGS_THEMES_KEY, PortletThemesSettings, |
|
74 name='++themes++') |
39 |
75 |
40 |
76 |
41 @adapter_config(name='themes', context=IPortletThemesSettingsTarget, provides=ITraversable) |
77 @adapter_config(name='themes', context=IPortletThemesSettingsTarget, provides=ITraversable) |
42 class ThemesPortletsSettingsTraverser(ContextAdapter): |
78 class ThemesPortletsSettingsTraverser(ContextAdapter): |
43 """++themes++ portlet settings adapter""" |
79 """++themes++ portlet settings adapter""" |
44 |
80 |
45 def traverse(self, name, furtherpath=None): |
81 def traverse(self, name, furtherpath=None): |
46 return IPortletThemesSettings(self.context) |
82 return IPortletThemesSettings(self.context) |
|
83 |
|
84 |
|
85 # |
|
86 # Portlets collections management |
|
87 # |
|
88 |
|
89 @implementer(IPortletCollectionsSettings) |
|
90 class PortletCollectionsSettings(Persistent, Contained): |
|
91 """Portlet collections settings""" |
|
92 |
|
93 collections = FieldProperty(IPortletCollectionsSettings['collections']) |
|
94 |
|
95 |
|
96 @adapter_config(context=IPortletCollectionsSettingsTarget, provides=IPortletCollectionsSettings) |
|
97 def portlet_collections_settings_factory(context): |
|
98 """Portlet collections settings adapter""" |
|
99 return get_annotation_adapter(context, PORTLET_SETTINGS_COLLECTIONS_KEY, PortletCollectionsSettings, |
|
100 name='++collections++') |
|
101 |
|
102 |
|
103 @adapter_config(name='collections', context=IPortletCollectionsSettingsTarget, provides=ITraversable) |
|
104 class CollectionsPortletsSettingsTraverser(ContextAdapter): |
|
105 """++collections++ portlet settings adapter""" |
|
106 |
|
107 def traverse(self, name, furtherpath=None): |
|
108 return IPortletCollectionsSettings(self.context) |