src/pyams_content/shared/imagemap/__init__.py
changeset 139 99a481dc4c89
parent 69 8c5bbc396670
child 159 544331dc946f
--- 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