--- a/src/pyams_content/component/video/zmi/paragraph.py Thu May 24 10:51:45 2018 +0200
+++ b/src/pyams_content/component/video/zmi/paragraph.py Fri May 25 08:03:41 2018 +0200
@@ -17,13 +17,12 @@
# import interfaces
from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphContainer, \
- IBaseParagraph, IParagraphRenderer
+ IBaseParagraph
from pyams_content.component.paragraph.zmi.interfaces import IParagraphContainerView, IParagraphInnerEditor
from pyams_content.component.video.interfaces import IExternalVideoProvider, IExternalVideoSettings, \
- IExternalVideoParagraph, IExternalVideoRenderer, EXTERNAL_VIDEO_PARAGRAPH_TYPE
+ IExternalVideoParagraph, EXTERNAL_VIDEO_PARAGRAPH_TYPE
from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
from pyams_form.interfaces.form import IWidgetsSuffixViewletsManager, IInnerForm
-from pyams_i18n.interfaces import II18n
from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
from pyams_skin.layer import IPyAMSLayer
from pyams_utils.interfaces.data import IObjectData
@@ -34,13 +33,14 @@
BaseParagraphPropertiesEditForm, BaseParagraphAJAXEditForm, get_json_paragraph_refresh_event, \
IParagraphEditFormButtons
from pyams_content.component.video.paragraph import ExternalVideoParagraph
+from pyams_content.features.renderer.zmi.widget import RendererFieldWidget
from pyams_form.group import NamedWidgetsGroup
from pyams_pagelet.pagelet import pagelet_config
from pyams_template.template import template_config
from pyams_utils.adapter import adapter_config
-from pyams_utils.registry import get_utility, get_current_registry
+from pyams_utils.registry import get_utility
from pyams_utils.url import absolute_url
-from pyams_viewlet.viewlet import viewlet_config, Viewlet, BaseContentProvider
+from pyams_viewlet.viewlet import viewlet_config, Viewlet
from pyams_zmi.form import AdminDialogAddForm, InnerAdminAddForm, InnerAdminEditForm
from pyramid.events import subscriber
from pyramid.exceptions import NotFound
@@ -105,7 +105,7 @@
switch=True,
hide_if_empty=True))
self.add_group(NamedWidgetsGroup(self, 'data_group', self.widgets,
- ('description', 'author', 'provider_name'),
+ ('description', 'author', 'renderer', 'provider_name'),
bordered=False))
super(ExternalVideoParagraphAddForm, self).updateGroups()
@@ -215,6 +215,7 @@
@property
def fields(self):
fields = field.Fields(IExternalVideoParagraph).omit('__parent__', '__name__', 'visible')
+ fields['renderer'].widgetFactory = RendererFieldWidget
provider = self.context.get_provider()
if provider is not None:
fields += field.Fields(provider.settings_interface)
@@ -239,7 +240,7 @@
switch=True,
hide_if_empty=True))
self.add_group(NamedWidgetsGroup(self, 'data_group', self.widgets,
- ('description', 'author', 'provider_name'),
+ ('description', 'author', 'renderer', 'provider_name'),
bordered=False))
if 'provider_name' in self.widgets:
provider = self.context.get_provider()
@@ -295,40 +296,3 @@
permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
class ExternalVideoParagraphInnerAJAXEditForm(BaseParagraphAJAXEditForm, ExternalVideoParagraphInnerEditForm):
"""External video paragraph inner edit form, JSON renderer"""
-
-
-#
-# Video paragraph renderer
-#
-
-@adapter_config(context=(IExternalVideoParagraph, IPyAMSLayer), provides=IParagraphRenderer)
-@template_config(template='templates/video-render.pt', layer=IPyAMSLayer)
-class ExternalVideoParagraphRenderer(BaseContentProvider):
- """External video paragraph renderer"""
-
- video_renderer = None
-
- def __init__(self, context, request):
- super(ExternalVideoParagraphRenderer, self).__init__(context, request)
- provider = context.get_provider()
- if provider is not None:
- registry = get_current_registry()
- self.video_renderer = registry.queryMultiAdapter((context.settings, request), IExternalVideoRenderer)
-
- def update(self):
- i18n = II18n(self.context)
- if self.language:
- for attr in ('title', 'body', 'description'):
- setattr(self, attr, i18n.get_attribute(attr, self.language, request=self.request))
- else:
- for attr in ('title', 'body', 'description'):
- setattr(self, attr, i18n.query_attribute(attr, request=self.request))
- renderer = self.video_renderer
- if renderer is not None:
- renderer.update()
-
- def render_video(self):
- renderer = self.video_renderer
- if not renderer:
- return ''
- return renderer.render()