src/pyams_content/component/paragraph/video.py
changeset 555 8e8a14452567
parent 439 2a61d39de0fc
child 569 9a5f52b5d876
equal deleted inserted replaced
554:120ce09ade94 555:8e8a14452567
    26 from zope.lifecycleevent.interfaces import IObjectAddedEvent, IObjectModifiedEvent
    26 from zope.lifecycleevent.interfaces import IObjectAddedEvent, IObjectModifiedEvent
    27 
    27 
    28 # import packages
    28 # import packages
    29 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, BaseParagraphFactory
    29 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, BaseParagraphFactory
    30 from pyams_content.component.paragraph.html import check_associations
    30 from pyams_content.component.paragraph.html import check_associations
    31 from pyams_content.features.renderer import RenderedContentMixin, IContentRenderer
    31 from pyams_content.features.renderer import RenderersVocabulary
    32 from pyams_file.property import FileProperty
    32 from pyams_file.property import FileProperty
    33 from pyams_utils.adapter import adapter_config
    33 from pyams_utils.adapter import adapter_config
       
    34 from pyams_utils.factory import factory_config
    34 from pyams_utils.registry import utility_config, get_utility
    35 from pyams_utils.registry import utility_config, get_utility
    35 from pyams_utils.request import check_request
       
    36 from pyams_utils.traversing import get_parent
    36 from pyams_utils.traversing import get_parent
    37 from pyams_utils.vocabulary import vocabulary_config
    37 from pyams_utils.vocabulary import vocabulary_config
    38 from pyramid.events import subscriber
    38 from pyramid.events import subscriber
    39 from zope.interface import implementer
    39 from zope.interface import implementer
    40 from zope.schema.fieldproperty import FieldProperty
    40 from zope.schema.fieldproperty import FieldProperty
    41 from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
       
    42 
    41 
    43 from pyams_content import _
    42 from pyams_content import _
    44 
    43 
    45 
    44 
    46 @implementer(IVideoParagraph, IExtFileContainerTarget, ILinkContainerTarget)
    45 @implementer(IVideoParagraph, IExtFileContainerTarget, ILinkContainerTarget)
    47 class VideoParagraph(RenderedContentMixin, BaseParagraph):
    46 @factory_config(provided=IVideoParagraph)
       
    47 class VideoParagraph(BaseParagraph):
    48     """Video paragraph class"""
    48     """Video paragraph class"""
    49 
    49 
    50     icon_class = 'fa-film'
    50     icon_class = 'fa-film'
    51     icon_hint = _("Video")
    51     icon_hint = _("Video")
    52 
    52 
   109                 output.append(translate(MISSING_VALUE).format(field=translate(IVideoParagraph[attr].title)))
   109                 output.append(translate(MISSING_VALUE).format(field=translate(IVideoParagraph[attr].title)))
   110         return output
   110         return output
   111 
   111 
   112 
   112 
   113 @vocabulary_config(name=VIDEO_PARAGRAPH_RENDERERS)
   113 @vocabulary_config(name=VIDEO_PARAGRAPH_RENDERERS)
   114 class VideoParagraphRendererVocabulary(SimpleVocabulary):
   114 class VideoParagraphRendererVocabulary(RenderersVocabulary):
   115     """Video paragraph renderers vocabulary"""
   115     """Video paragraph renderers vocabulary"""
   116 
   116 
   117     def __init__(self, context=None):
   117     content_interface = IVideoParagraph
   118         request = check_request()
       
   119         translate = request.localizer.translate
       
   120         registry = request.registry
       
   121         if not IVideoParagraph.providedBy(context):
       
   122             context = VideoParagraph()
       
   123         terms = [SimpleTerm(name, title=translate(adapter.label))
       
   124                  for name, adapter in sorted(registry.getAdapters((context, request), IContentRenderer),
       
   125                                              key=lambda x: x[1].weight)]
       
   126         super(VideoParagraphRendererVocabulary, self).__init__(terms)