src/pyams_content/component/video/paragraph.py
changeset 555 8e8a14452567
parent 407 0ef5de2d5674
child 586 28445044f6e3
equal deleted inserted replaced
554:120ce09ade94 555:8e8a14452567
    15 
    15 
    16 # import standard library
    16 # import standard library
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_content.component.paragraph.interfaces import IParagraphFactory
    19 from pyams_content.component.paragraph.interfaces import IParagraphFactory
    20 from pyams_content.component.video.interfaces import IExternalVideoParagraph, EXTERNAL_VIDEO_PARAGRAPH_TYPE
    20 from pyams_content.component.video.interfaces import IExternalVideoParagraph, EXTERNAL_VIDEO_PARAGRAPH_TYPE, \
       
    21     EXTERNAL_VIDEO_PARAGRAPH_RENDERERS
    21 from pyams_content.features.checker.interfaces import IContentChecker, MISSING_VALUE, MISSING_LANG_VALUE
    22 from pyams_content.features.checker.interfaces import IContentChecker, MISSING_VALUE, MISSING_LANG_VALUE
    22 from pyams_i18n.interfaces import II18n, II18nManager, INegotiator
    23 from pyams_i18n.interfaces import II18n, II18nManager, INegotiator
    23 
    24 
    24 # import packages
    25 # import packages
    25 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphFactory
    26 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphFactory
    26 from pyams_content.component.video import ExternalVideo, ExternalVideoContentChecker
    27 from pyams_content.component.video import ExternalVideo, ExternalVideoContentChecker
       
    28 from pyams_content.features.renderer import RenderersVocabulary
    27 from pyams_utils.adapter import adapter_config
    29 from pyams_utils.adapter import adapter_config
       
    30 from pyams_utils.factory import factory_config
    28 from pyams_utils.registry import utility_config, get_utility
    31 from pyams_utils.registry import utility_config, get_utility
    29 from pyams_utils.request import check_request
    32 from pyams_utils.request import check_request
    30 from pyams_utils.traversing import get_parent
    33 from pyams_utils.traversing import get_parent
       
    34 from pyams_utils.vocabulary import vocabulary_config
    31 from zope.interface import implementer
    35 from zope.interface import implementer
    32 from zope.schema.fieldproperty import FieldProperty
    36 from zope.schema.fieldproperty import FieldProperty
    33 
    37 
    34 from pyams_content import _
    38 from pyams_content import _
    35 
    39 
    36 
    40 
    37 @implementer(IExternalVideoParagraph)
    41 @implementer(IExternalVideoParagraph)
       
    42 @factory_config(provided=IExternalVideoParagraph)
    38 class ExternalVideoParagraph(ExternalVideo, BaseParagraph):
    43 class ExternalVideoParagraph(ExternalVideo, BaseParagraph):
    39     """External video paragraph"""
    44     """External video paragraph"""
    40 
    45 
    41     icon_class = 'fa-youtube-play'
    46     icon_class = 'fa-youtube-play'
    42     icon_hint = _("External video")
    47     icon_hint = _("External video")
    43 
    48 
    44     body = FieldProperty(IExternalVideoParagraph['body'])
    49     body = FieldProperty(IExternalVideoParagraph['body'])
       
    50     renderer = FieldProperty(IExternalVideoParagraph['renderer'])
    45 
    51 
    46 
    52 
    47 @utility_config(name=EXTERNAL_VIDEO_PARAGRAPH_TYPE, provides=IParagraphFactory)
    53 @utility_config(name=EXTERNAL_VIDEO_PARAGRAPH_TYPE, provides=IParagraphFactory)
    48 class ExternalVideoParagraphFactory(BaseParagraphFactory):
    54 class ExternalVideoParagraphFactory(BaseParagraphFactory):
    49     """External video paragraph factory"""
    55     """External video paragraph factory"""
    83                         output.insert(0, missing_value.format(field=translate(IExternalVideoParagraph[attr].title)))
    89                         output.insert(0, missing_value.format(field=translate(IExternalVideoParagraph[attr].title)))
    84                     else:
    90                     else:
    85                         output.insert(0, missing_lang_value.format(field=translate(IExternalVideoParagraph[attr].title),
    91                         output.insert(0, missing_lang_value.format(field=translate(IExternalVideoParagraph[attr].title),
    86                                                                    lang=lang))
    92                                                                    lang=lang))
    87         return output
    93         return output
       
    94 
       
    95 
       
    96 @vocabulary_config(name=EXTERNAL_VIDEO_PARAGRAPH_RENDERERS)
       
    97 class ExternalVideoParagraphRendererVocabulary(RenderersVocabulary):
       
    98     """External video paragraph renderers vocabulary"""
       
    99 
       
   100     content_interface = IExternalVideoParagraph