src/pyams_content/component/theme/portlet.py
changeset 829 f933926ed0a1
parent 558 d9c6b1d7fefa
child 1240 921ff38f1aae
--- 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)