src/pyams_content/component/gallery/__init__.py
changeset 363 86d1a240d4dc
parent 252 2dafc720b378
child 395 2a39b333a585
--- a/src/pyams_content/component/gallery/__init__.py	Wed Feb 07 09:22:03 2018 +0100
+++ b/src/pyams_content/component/gallery/__init__.py	Wed Feb 07 11:21:14 2018 +0100
@@ -18,6 +18,7 @@
 # import interfaces
 from pyams_content.component.gallery.interfaces import IGallery, IGalleryTarget, \
     GALLERY_CONTAINER_KEY, IGalleryRenderer
+from pyams_content.component.paragraph import IBaseParagraph
 from pyams_content.features.checker.interfaces import IContentChecker
 from pyams_content.shared.common.interfaces import IWfSharedContent
 from pyams_form.interfaces.form import IFormContextPermissionChecker
@@ -71,8 +72,8 @@
             # make sure that gallery item is correctly indexed
             index_object(value)
 
-    def get_visible_images(self):
-        return [image for image in self.values() if image.visible]
+    def get_visible_medias(self):
+        return [media for media in self.values() if media.visible]
 
 
 @adapter_config(context=IGalleryTarget, provides=IGallery)
@@ -116,7 +117,12 @@
 @subscriber(IObjectAddedEvent, context_selector=IGallery)
 def handle_added_gallery(event):
     """Handle added gallery"""
-    content = get_parent(event.object, IWfSharedContent)
+    gallery = event.object
+    if IBaseParagraph.providedBy(gallery):
+        # there is another event subscriber for paragraphs,
+        # so don't trigger event twice !
+        return
+    content = get_parent(gallery, IWfSharedContent)
     if content is not None:
         get_current_registry().notify(ObjectModifiedEvent(content))
 
@@ -124,7 +130,12 @@
 @subscriber(IObjectModifiedEvent, context_selector=IGallery)
 def handle_modified_gallery(event):
     """Handle modified gallery"""
-    content = get_parent(event.object, IWfSharedContent)
+    gallery = event.object
+    if IBaseParagraph.providedBy(gallery):
+        # there is another event subscriber for paragraphs,
+        # so don't trigger event twice !
+        return
+    content = get_parent(gallery, IWfSharedContent)
     if content is not None:
         get_current_registry().notify(ObjectModifiedEvent(content))
 
@@ -132,7 +143,12 @@
 @subscriber(IObjectRemovedEvent, context_selector=IGallery)
 def handle_removed_gallery(event):
     """Handle removed gallery"""
-    content = get_parent(event.object, IWfSharedContent)
+    gallery = event.object
+    if IBaseParagraph.providedBy(gallery):
+        # there is another event subscriber for paragraphs,
+        # so don't trigger event twice !
+        return
+    content = get_parent(gallery, IWfSharedContent)
     if content is not None:
         get_current_registry().notify(ObjectModifiedEvent(content))
 
@@ -148,13 +164,13 @@
     def inner_check(self, request):
         output = []
         registry = request.registry
-        for image in IGallery(self.context).values():
-            if not image.visible:
+        for media in IGallery(self.context).values():
+            if not media.visible:
                 continue
-            for name, checker in sorted(registry.getAdapters((image, ), IContentChecker),
+            for name, checker in sorted(registry.getAdapters((media, ), IContentChecker),
                                         key=lambda x: x[1].weight):
                 output.append('- {0} : '.format(checker.label or
-                                                II18n(image).query_attribute('title', request=request)))
+                                                II18n(media).query_attribute('title', request=request)))
                 output.append(checker.get_check_output(request))
         return output