src/pyams_content/component/video/paragraph.py
changeset 555 8e8a14452567
parent 407 0ef5de2d5674
child 586 28445044f6e3
--- a/src/pyams_content/component/video/paragraph.py	Thu May 24 10:51:45 2018 +0200
+++ b/src/pyams_content/component/video/paragraph.py	Fri May 25 08:03:41 2018 +0200
@@ -17,17 +17,21 @@
 
 # import interfaces
 from pyams_content.component.paragraph.interfaces import IParagraphFactory
-from pyams_content.component.video.interfaces import IExternalVideoParagraph, EXTERNAL_VIDEO_PARAGRAPH_TYPE
+from pyams_content.component.video.interfaces import IExternalVideoParagraph, EXTERNAL_VIDEO_PARAGRAPH_TYPE, \
+    EXTERNAL_VIDEO_PARAGRAPH_RENDERERS
 from pyams_content.features.checker.interfaces import IContentChecker, MISSING_VALUE, MISSING_LANG_VALUE
 from pyams_i18n.interfaces import II18n, II18nManager, INegotiator
 
 # import packages
 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphFactory
 from pyams_content.component.video import ExternalVideo, ExternalVideoContentChecker
+from pyams_content.features.renderer import RenderersVocabulary
 from pyams_utils.adapter import adapter_config
+from pyams_utils.factory import factory_config
 from pyams_utils.registry import utility_config, get_utility
 from pyams_utils.request import check_request
 from pyams_utils.traversing import get_parent
+from pyams_utils.vocabulary import vocabulary_config
 from zope.interface import implementer
 from zope.schema.fieldproperty import FieldProperty
 
@@ -35,6 +39,7 @@
 
 
 @implementer(IExternalVideoParagraph)
+@factory_config(provided=IExternalVideoParagraph)
 class ExternalVideoParagraph(ExternalVideo, BaseParagraph):
     """External video paragraph"""
 
@@ -42,6 +47,7 @@
     icon_hint = _("External video")
 
     body = FieldProperty(IExternalVideoParagraph['body'])
+    renderer = FieldProperty(IExternalVideoParagraph['renderer'])
 
 
 @utility_config(name=EXTERNAL_VIDEO_PARAGRAPH_TYPE, provides=IParagraphFactory)
@@ -85,3 +91,10 @@
                         output.insert(0, missing_lang_value.format(field=translate(IExternalVideoParagraph[attr].title),
                                                                    lang=lang))
         return output
+
+
+@vocabulary_config(name=EXTERNAL_VIDEO_PARAGRAPH_RENDERERS)
+class ExternalVideoParagraphRendererVocabulary(RenderersVocabulary):
+    """External video paragraph renderers vocabulary"""
+
+    content_interface = IExternalVideoParagraph