diff -r 1643b6a9a02a -r 99a481dc4c89 src/pyams_content/shared/imagemap/__init__.py --- a/src/pyams_content/shared/imagemap/__init__.py Mon Sep 11 14:52:15 2017 +0200 +++ b/src/pyams_content/shared/imagemap/__init__.py Mon Sep 11 14:53:15 2017 +0200 @@ -18,9 +18,11 @@ from persistent.mapping import PersistentMapping # import interfaces +from pyams_content.component.extfile.interfaces import IExtFileContainerTarget from pyams_content.component.links.interfaces import ILinkContainerTarget from pyams_content.shared.imagemap.interfaces import IMAGEMAP_CONTENT_TYPE, IMAGEMAP_CONTENT_NAME, \ IWfImageMap, IImageMap, IImageMapArea +from z3c.form.interfaces import NOT_CHANGED from zope.location.interfaces import ISublocations from zope.traversing.interfaces import ITraversable @@ -45,7 +47,7 @@ area = FieldProperty(IImageMapArea['area']) -@implementer(IWfImageMap, ILinkContainerTarget) +@implementer(IWfImageMap, IExtFileContainerTarget, ILinkContainerTarget) class WfImageMap(WfSharedContent): """Base image map""" @@ -66,9 +68,12 @@ @image.setter def image(self, value): + if value: + for image in value.values(): + if image and (image is not NOT_CHANGED): + self.areas = PersistentMapping() + break self._image = value - if value: - self.areas = PersistentMapping() def add_area(self, area): self._index += 1