src/pyams_content_es/component/paragraph.py
changeset 85 1a37243abeae
parent 69 3bc0c516ed1a
child 89 be7c832763cd
equal deleted inserted replaced
84:a4c07965e256 85:1a37243abeae
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 
       
    16 # import standard library
       
    17 
       
    18 # import interfaces
       
    19 from pyams_content.component.gallery.interfaces import IGalleryParagraph
    15 from pyams_content.component.gallery.interfaces import IGalleryParagraph
    20 from pyams_content.component.illustration.interfaces import IIllustrationParagraph
    16 from pyams_content.component.illustration.interfaces import IIllustrationParagraph
    21 from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget, \
    17 from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget, \
    22     IBaseParagraph
    18     IBaseParagraph
    23 from pyams_content.component.paragraph.interfaces.audio import IAudioParagraph
    19 from pyams_content.component.paragraph.interfaces.audio import IAudioParagraph
    30 from pyams_content.component.paragraph.interfaces.video import IVideoParagraph
    26 from pyams_content.component.paragraph.interfaces.video import IVideoParagraph
    31 from pyams_content.component.video.interfaces import IExternalVideoParagraph
    27 from pyams_content.component.video.interfaces import IExternalVideoParagraph
    32 from pyams_content.shared.imagemap.interfaces import IImageMapParagraph
    28 from pyams_content.shared.imagemap.interfaces import IImageMapParagraph
    33 from pyams_content_es.interfaces import IDocumentIndexInfo
    29 from pyams_content_es.interfaces import IDocumentIndexInfo
    34 from pyams_i18n.interfaces import II18nManager
    30 from pyams_i18n.interfaces import II18nManager
    35 
       
    36 # import packages
       
    37 from pyams_utils.adapter import adapter_config
    31 from pyams_utils.adapter import adapter_config
    38 from pyams_utils.html import html_to_text
    32 from pyams_utils.html import html_to_text
    39 from pyams_utils.traversing import get_parent
    33 from pyams_utils.traversing import get_parent
    40 
    34 
    41 
    35 
   126     """Audio paragraph index info"""
   120     """Audio paragraph index info"""
   127     info = {}
   121     info = {}
   128     manager = get_parent(paragraph, II18nManager)
   122     manager = get_parent(paragraph, II18nManager)
   129     for lang in manager.get_languages():
   123     for lang in manager.get_languages():
   130         for attr in ('title', 'description'):
   124         for attr in ('title', 'description'):
   131             value = getattr(paragraph, attr, {}).get(lang, '')
   125             value = (getattr(paragraph, attr, {}) or {}).get(lang, '')
   132             if value:
   126             if value:
   133                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   127                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   134                                                      value=value)
   128                                                      value=value)
   135         for attr in ('author', ):
   129         for attr in ('author',):
   136             value = getattr(paragraph, attr, '')
   130             value = getattr(paragraph, attr, '')
   137             if value:
   131             if value:
   138                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   132                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   139                                                      value=value)
   133                                                      value=value)
   140     return info
   134     return info
   145     """Video paragraph index info"""
   139     """Video paragraph index info"""
   146     info = {}
   140     info = {}
   147     manager = get_parent(paragraph, II18nManager)
   141     manager = get_parent(paragraph, II18nManager)
   148     for lang in manager.get_languages():
   142     for lang in manager.get_languages():
   149         for attr in ('title', 'description'):
   143         for attr in ('title', 'description'):
   150             value = getattr(paragraph, attr, {}).get(lang, '')
   144             value = (getattr(paragraph, attr, {}) or {}).get(lang, '')
   151             if value:
   145             if value:
   152                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   146                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   153                                                      value=value)
   147                                                      value=value)
   154         for attr in ('author', ):
   148         for attr in ('author',):
   155             value = getattr(paragraph, attr, '')
   149             value = getattr(paragraph, attr, '')
   156             if value:
   150             if value:
   157                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   151                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   158                                                      value=value)
   152                                                      value=value)
   159     return info
   153     return info
   168         body = (paragraph.body or {}).get(lang, '')
   162         body = (paragraph.body or {}).get(lang, '')
   169         if body:
   163         if body:
   170             info[lang] = '{old}\n{body}'.format(old=info.get(lang, ''),
   164             info[lang] = '{old}\n{body}'.format(old=info.get(lang, ''),
   171                                                 body=html_to_text(body.replace('\r', '')))
   165                                                 body=html_to_text(body.replace('\r', '')))
   172         for attr in ('title', 'description'):
   166         for attr in ('title', 'description'):
   173             value = getattr(paragraph, attr, {}).get(lang, '')
   167             value = (getattr(paragraph, attr, {}) or {}).get(lang, '')
   174             if value:
   168             if value:
   175                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   169                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   176                                                      value=value)
   170                                                      value=value)
   177         for attr in ('author',):
   171         for attr in ('author',):
   178             value = getattr(paragraph, attr, '')
   172             value = getattr(paragraph, attr, '')
   197     """Contact paragraph index info"""
   191     """Contact paragraph index info"""
   198     info = {}
   192     info = {}
   199     manager = get_parent(paragraph, II18nManager)
   193     manager = get_parent(paragraph, II18nManager)
   200     for lang in manager.get_languages():
   194     for lang in manager.get_languages():
   201         for attr in ('title', 'charge'):
   195         for attr in ('title', 'charge'):
   202             value = getattr(paragraph, attr, {}).get(lang, '')
   196             value = (getattr(paragraph, attr, {}) or {}).get(lang, '')
   203             if value:
   197             if value:
   204                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   198                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   205                                                      value=value)
   199                                                      value=value)
   206         for attr in ('name', 'address'):
   200         for attr in ('name', 'address'):
   207             value = getattr(paragraph, attr, '')
   201             value = getattr(paragraph, attr, '')
   240     """Verbatim paragraph index info"""
   234     """Verbatim paragraph index info"""
   241     info = {}
   235     info = {}
   242     manager = get_parent(paragraph, II18nManager)
   236     manager = get_parent(paragraph, II18nManager)
   243     for lang in manager.get_languages():
   237     for lang in manager.get_languages():
   244         for attr in ('title', 'quote', 'charge'):
   238         for attr in ('title', 'quote', 'charge'):
   245             value = getattr(paragraph, attr, {}).get(lang, '')
   239             value = (getattr(paragraph, attr, {}) or {}).get(lang, '')
   246             if value:
   240             if value:
   247                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   241                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   248                                                      value=value)
   242                                                      value=value)
   249         for attr in ('author', ):
   243         for attr in ('author',):
   250             value = getattr(paragraph, attr, '')
   244             value = getattr(paragraph, attr, '')
   251             if value:
   245             if value:
   252                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   246                 info[lang] = '{old}\n{value}'.format(old=info.get(lang, ''),
   253                                                      value=value)
   247                                                      value=value)
   254     return info
   248     return info