--- 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)