diff -r 8fc21a7ef206 -r 86d1a240d4dc src/pyams_content/component/gallery/__init__.py --- 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