src/pyams_default_theme/component/gallery/__init__.py
changeset 319 29ffc22ece57
parent 230 951d11442e0b
child 380 f549a5cd4781
--- a/src/pyams_default_theme/component/gallery/__init__.py	Fri Dec 28 11:05:40 2018 +0100
+++ b/src/pyams_default_theme/component/gallery/__init__.py	Sun Dec 30 18:11:35 2018 +0100
@@ -12,16 +12,47 @@
 
 __docformat__ = 'restructuredtext'
 
+from persistent import Persistent
+from zope.container.contained import Contained
+from zope.interface import implementer
+from zope.schema.fieldproperty import FieldProperty
+
 from pyams_content.component.gallery.interfaces import IBaseGallery
 from pyams_content.features.renderer.interfaces import IContentRenderer
+from pyams_default_theme.component.gallery.interfaces import IGalleryDefaultRendererSettings
 from pyams_default_theme.features.renderer import BaseContentRenderer
 from pyams_skin.layer import IPyAMSLayer
 from pyams_template.template import template_config
-from pyams_utils.adapter import adapter_config
+from pyams_utils.adapter import adapter_config, get_annotation_adapter
 
 from pyams_default_theme import _, lightbox
 
 
+#
+# Gallery default renderer settings
+#
+
+DEFAULT_GALLERY_RENDERER_SETTINGS_KEY = 'pyams_content.gallery.renderer:default'
+
+
+@implementer(IGalleryDefaultRendererSettings)
+class GalleryDefaultRendererSettings(Persistent, Contained):
+    """Gallery default renderer settings"""
+
+    thumbnails_selection = FieldProperty(IGalleryDefaultRendererSettings['thumbnails_selection'])
+
+
+@adapter_config(context=IBaseGallery, provides=IGalleryDefaultRendererSettings)
+def default_gallery_renderer_settings_factory(context):
+    """Gallery default renderer settings factory"""
+    return get_annotation_adapter(context, DEFAULT_GALLERY_RENDERER_SETTINGS_KEY,
+                                  GalleryDefaultRendererSettings)
+
+
+#
+# Gallery default renderer
+#
+
 class BaseGalleryRenderer(BaseContentRenderer):
     """Base gallery renderer"""
 
@@ -37,6 +68,12 @@
     i18n_context_attrs = ('title',)
     resources = (lightbox,)
 
+    settings_interface = IGalleryDefaultRendererSettings
+
+
+#
+# Gallery carousel renderer
+#
 
 @adapter_config(name='carousel-sm', context=(IBaseGallery, IPyAMSLayer), provides=IContentRenderer)
 @template_config(template='templates/renderer-carousel.pt', layer=IPyAMSLayer)