# HG changeset patch # User Thierry Florac # Date 1505227137 -7200 # Node ID 35cf2c00874c6051dac78e5d362f94bc6375e935 # Parent 8c7790dd55964d300dc81d9181034e530e90bda2 Added index data for new paragraph types diff -r 8c7790dd5596 -r 35cf2c00874c src/pyams_content_es/component/paragraph.py --- a/src/pyams_content_es/component/paragraph.py Mon Sep 11 15:11:37 2017 +0200 +++ b/src/pyams_content_es/component/paragraph.py Tue Sep 12 16:38:57 2017 +0200 @@ -16,10 +16,12 @@ # import standard library # import interfaces +from pyams_content.component.gallery.interfaces import IGalleryParagraph from pyams_content.component.illustration.interfaces import IIllustrationParagraph from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget from pyams_content.component.paragraph.interfaces.header import IHeaderParagraph from pyams_content.component.paragraph.interfaces.html import IHTMLParagraph +from pyams_content.shared.imagemap.interfaces import IImageMapParagraph from pyams_content_es.interfaces import IDocumentIndexInfo # import packages @@ -67,6 +69,34 @@ return info +@adapter_config(context=IGalleryParagraph, provides=IDocumentIndexInfo) +def GalleryParagraphIndexInfo(paragraph): + """Gallery paragraph index info""" + info = {} + for lang, title in paragraph.title.items(): + if title: + info.setdefault(lang, title) + for image in IGalleryParagraph(paragraph).values(): + for attr in ('title', 'alt_title', 'description', 'author', 'author_comments', 'sound_title', + 'sound_description'): + for lang, value in (getattr(image, attr, {}) or {}).items(): + if value: + new_info = '{old}\n{value}'.format(old=info.get(lang, ''), + value=value or '') + info[lang] = new_info + return info + + +@adapter_config(context=IImageMapParagraph, provides=IDocumentIndexInfo) +def ImagemapParagraphIndexInfo(paragraph): + """Image map paragraph index info""" + info = {} + for lang, title in paragraph.title.items(): + if title: + info.setdefault(lang, title) + return info + + @adapter_config(name='body', context=IParagraphContainerTarget, provides=IDocumentIndexInfo) def ParagraphContainerTargetIndexInfo(content): """Paragraph container index info"""