diff -r 117089568313 -r 2a61d39de0fc src/pyams_content/component/paragraph/zmi/video.py --- a/src/pyams_content/component/paragraph/zmi/video.py Fri Mar 02 17:54:01 2018 +0100 +++ b/src/pyams_content/component/paragraph/zmi/video.py Sun Mar 04 16:36:30 2018 +0100 @@ -23,7 +23,6 @@ from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphContainerView from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION from pyams_form.interfaces.form import IInnerForm, IEditFormButtons -from pyams_i18n.interfaces import II18n from pyams_skin.interfaces.viewlet import IToolbarAddingMenu from pyams_skin.layer import IPyAMSLayer from pyams_zmi.interfaces import IPropertiesEditForm @@ -35,9 +34,10 @@ from pyams_content.component.paragraph.video import VideoParagraph from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \ BaseParagraphAddMenu, BaseParagraphPropertiesEditForm +from pyams_content.features.renderer.zmi import BaseRenderedContentPreview +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_viewlet.viewlet import viewlet_config, BaseContentProvider from pyams_zmi.form import AdminDialogAddForm @@ -85,7 +85,7 @@ switch=True, hide_if_empty=True)) self.add_group(NamedWidgetsGroup(self, 'data_group', self.widgets, - ('description', 'author', 'data'), + ('description', 'author', 'data', 'renderer'), bordered=False)) def create(self, data): @@ -111,6 +111,8 @@ icon_css_class = 'fa fa-fw fa-film' fields = field.Fields(IVideoParagraph).omit('__parent__', '__name__', 'visible') + fields['renderer'].widgetFactory = RendererFieldWidget + ajax_handler = 'properties.json' edit_permission = MANAGE_CONTENT_PERMISSION @@ -128,7 +130,7 @@ switch=True, hide_if_empty=True)) self.add_group(NamedWidgetsGroup(self, 'data_group', self.widgets, - ('description', 'author', 'data'), + ('description', 'author', 'data', 'renderer'), bordered=False)) @@ -183,18 +185,21 @@ 'object_name': associations_table.id, 'table': associations_table.render()} }) - if 'data' in updated: - # we have to commit transaction to be able to handle blobs... - ITransactionManager(self.context).get().commit() + if ('data' in updated) or ('renderer' in updated): + if 'data' in updated: + # we have to commit transaction to be able to handle blobs... + ITransactionManager(self.context).get().commit() form = VideoParagraphPropertiesInnerEditForm(self.context, self.request) form.update() output.setdefault('events', []).append({ 'event': 'myams.refresh', - 'options': {'object_id': '{0}_{1}_{2}'.format( - self.context.__class__.__name__, - getattr(form.getContent(), '__name__', 'noname').replace('++', ''), - form.id), - 'content': form.render()} + 'options': { + 'object_id': '{0}_{1}_{2}'.format( + self.context.__class__.__name__, + getattr(form.getContent(), '__name__', 'noname').replace('++', ''), + form.id), + 'content': form.render() + } }) return output @@ -204,17 +209,5 @@ # @adapter_config(context=(IVideoParagraph, IPyAMSLayer), provides=IParagraphPreview) -@template_config(template='templates/video-preview.pt', layer=IPyAMSLayer) -class VideoParagraphPreview(BaseContentProvider): +class VideoParagraphPreview(BaseRenderedContentPreview): """Video paragraph preview""" - - language = None - - 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))