--- a/src/pyams_content/component/theme/portlet.py Tue Jul 10 16:59:55 2018 +0200
+++ b/src/pyams_content/component/theme/portlet.py Wed Jul 11 10:18:10 2018 +0200
@@ -16,8 +16,10 @@
# import standard library
# import interfaces
-from pyams_content.component.theme.interfaces import IPortletThemesSettings, IPortletThemesSettingsTarget, \
- PORTLET_SETTINGS_THEMES_KEY
+from pyams_content.component.theme.interfaces import \
+ IPortletThemesSettings, IPortletThemesSettingsTarget, PORTLET_SETTINGS_THEMES_KEY, \
+ IPortletTagsSettings, IPortletTagsSettingsTarget, PORTLET_SETTINGS_TAGS_KEY, \
+ IPortletCollectionsSettings, IPortletCollectionsSettingsTarget, PORTLET_SETTINGS_COLLECTIONS_KEY
from zope.traversing.interfaces import ITraversable
# import packages
@@ -25,17 +27,51 @@
from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter
from zope.container.contained import Contained
from zope.interface import implementer
+from zope.schema.fieldproperty import FieldProperty
+#
+# Portlets tags management
+#
+
+@implementer(IPortletTagsSettings)
+class PortletTagsSettings(Persistent, Contained):
+ """Portlet tags settings"""
+
+ tags = FieldProperty(IPortletTagsSettings['tags'])
+
+
+@adapter_config(context=IPortletTagsSettingsTarget, provides=IPortletTagsSettings)
+def portlet_tags_settings_factory(context):
+ """Portlet tags settings adapter"""
+ return get_annotation_adapter(context, PORTLET_SETTINGS_TAGS_KEY, PortletTagsSettings,
+ name='++tags++')
+
+
+@adapter_config(name='tags', context=IPortletTagsSettingsTarget, provides=ITraversable)
+class TagsPortletsSettingsTraverser(ContextAdapter):
+ """++tags++ portlet settings adapter"""
+
+ def traverse(self, name, furtherpath=None):
+ return IPortletTagsSettings(self.context)
+
+
+#
+# Portlets themes management
+#
+
@implementer(IPortletThemesSettings)
class PortletThemesSettings(Persistent, Contained):
"""Portlet themes settings"""
+ themes = FieldProperty(IPortletThemesSettings['themes'])
+
@adapter_config(context=IPortletThemesSettingsTarget, provides=IPortletThemesSettings)
def portlet_themes_settings_factory(context):
"""Portlet themes settings adapter"""
- return get_annotation_adapter(context, PORTLET_SETTINGS_THEMES_KEY, PortletThemesSettings, name='++themes++')
+ return get_annotation_adapter(context, PORTLET_SETTINGS_THEMES_KEY, PortletThemesSettings,
+ name='++themes++')
@adapter_config(name='themes', context=IPortletThemesSettingsTarget, provides=ITraversable)
@@ -44,3 +80,29 @@
def traverse(self, name, furtherpath=None):
return IPortletThemesSettings(self.context)
+
+
+#
+# Portlets collections management
+#
+
+@implementer(IPortletCollectionsSettings)
+class PortletCollectionsSettings(Persistent, Contained):
+ """Portlet collections settings"""
+
+ collections = FieldProperty(IPortletCollectionsSettings['collections'])
+
+
+@adapter_config(context=IPortletCollectionsSettingsTarget, provides=IPortletCollectionsSettings)
+def portlet_collections_settings_factory(context):
+ """Portlet collections settings adapter"""
+ return get_annotation_adapter(context, PORTLET_SETTINGS_COLLECTIONS_KEY, PortletCollectionsSettings,
+ name='++collections++')
+
+
+@adapter_config(name='collections', context=IPortletCollectionsSettingsTarget, provides=ITraversable)
+class CollectionsPortletsSettingsTraverser(ContextAdapter):
+ """++collections++ portlet settings adapter"""
+
+ def traverse(self, name, furtherpath=None):
+ return IPortletCollectionsSettings(self.context)