src/pyams_portal/portlets/image/__init__.py
changeset 18 3d81c3b94605
parent 14 7adb05065e32
child 33 24c6db8d13f1
--- a/src/pyams_portal/portlets/image/__init__.py	Tue Oct 11 16:06:12 2016 +0200
+++ b/src/pyams_portal/portlets/image/__init__.py	Tue Nov 15 10:22:36 2016 +0100
@@ -17,7 +17,8 @@
 
 # import interfaces
 from .interfaces import IImagePortletSettings
-from pyams_portal.interfaces import IPortalContext, IPortletRenderer
+from pyams_file.interfaces import IResponsiveImage, DELETED_FILE
+from pyams_portal.interfaces import IPortalContext, IPortletRenderer, IPortalPage, IPortalTemplateConfiguration
 from pyams_skin.layer import IPyAMSLayer
 from pyams_utils.interfaces import PUBLIC_PERMISSION
 
@@ -26,7 +27,7 @@
 from pyams_portal.portlet import portlet_config, Portlet, PortletSettings, PortletRenderer
 from pyams_template.template import template_config
 from pyams_utils.adapter import adapter_config
-from zope.interface import implementer, Interface
+from zope.interface import implementer, Interface, alsoProvides
 
 from pyams_portal import _
 
@@ -38,7 +39,17 @@
 class ImagePortletSettings(PortletSettings):
     """Image portlet settings"""
 
-    image = FileProperty(IImagePortletSettings['image'])
+    _image = FileProperty(IImagePortletSettings['image'])
+
+    @property
+    def image(self):
+        return self._image
+
+    @image.setter
+    def image(self, value):
+        self._image = value
+        if (value is not None) and (value is not DELETED_FILE):
+            alsoProvides(self._image, IResponsiveImage)
 
 
 @portlet_config(permission=PUBLIC_PERMISSION)
@@ -58,3 +69,10 @@
 @template_config(template='image.pt', layer=IPyAMSLayer)
 class ImagePortletRenderer(PortletRenderer):
     """Image portlet renderer"""
+
+    @property
+    def slot_configuration(self):
+        template = IPortalPage(self.context).template
+        config = IPortalTemplateConfiguration(template)
+        slot_id, slot_name = config.get_portlet_slot(self.settings.configuration.portlet_id)
+        return config.get_slot_configuration(slot_name)