src/pyams_content/component/paragraph/zmi/html.py
changeset 555 8e8a14452567
parent 550 9658debb49a3
child 591 b694d5667d17
--- a/src/pyams_content/component/paragraph/zmi/html.py	Thu May 24 10:51:45 2018 +0200
+++ b/src/pyams_content/component/paragraph/zmi/html.py	Fri May 25 08:03:41 2018 +0200
@@ -18,15 +18,13 @@
 # import interfaces
 from pyams_content.component.association.interfaces import IAssociationTarget
 from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm
-from pyams_content.component.illustration.interfaces import IIllustration
 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphFactorySettings, \
-    IParagraphContainer, IParagraphRenderer
+    IParagraphContainer
 from pyams_content.component.paragraph.interfaces.html import IHTMLParagraph, IRawParagraph, RAW_PARAGRAPH_TYPE, \
     HTML_PARAGRAPH_TYPE
 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
-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
@@ -38,14 +36,14 @@
 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \
     BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, get_json_paragraph_toolbar_refresh_event, \
     IParagraphEditFormButtons
+from pyams_content.features.renderer.zmi.widget import RendererFieldWidget
 from pyams_form.security import ProtectedFormObjectMixin
 from pyams_pagelet.pagelet import pagelet_config
 from pyams_skin.event import get_json_switched_table_refresh_event
 from pyams_skin.viewlet.menu import MenuDivider
-from pyams_template.template import template_config
 from pyams_utils.adapter import adapter_config
 from pyams_utils.traversing import get_parent
-from pyams_viewlet.viewlet import viewlet_config, BaseContentProvider
+from pyams_viewlet.viewlet import viewlet_config
 from pyams_zmi.form import AdminDialogAddForm
 from pyramid.view import view_config
 from z3c.form import field, button
@@ -125,6 +123,8 @@
     icon_css_class = 'fa fa-fw fa-code'
 
     fields = field.Fields(IRawParagraph).omit('__parent__', '__name__', 'visible')
+    fields['renderer'].widgetFactory = RendererFieldWidget
+
     ajax_handler = 'properties.json'
     edit_permission = MANAGE_CONTENT_PERMISSION
 
@@ -163,27 +163,6 @@
 
 
 #
-# Raw HTML paragraph renderer
-#
-
-@adapter_config(context=(IRawParagraph, IPyAMSLayer), provides=IParagraphRenderer)
-@template_config(template='templates/raw-render.pt', layer=IPyAMSLayer)
-class RawParagraphRenderer(BaseContentProvider):
-    """Raw HTML paragraph renderer"""
-
-    language = None
-
-    def update(self):
-        i18n = II18n(self.context)
-        if self.language:
-            for attr in ('title', 'body'):
-                setattr(self, attr, i18n.get_attribute(attr, self.language, request=self.request))
-        else:
-            for attr in ('title', 'body'):
-                setattr(self, attr, i18n.query_attribute(attr, request=self.request))
-
-
-#
 # Rich text paragraph
 #
 
@@ -245,6 +224,8 @@
     input_css_class = 'col-md-10'
 
     fields = field.Fields(IHTMLParagraph).omit('__parent__', '__name__', 'visible')
+    fields['renderer'].widgetFactory = RendererFieldWidget
+
     ajax_handler = 'properties.json'
     edit_permission = MANAGE_CONTENT_PERMISSION
 
@@ -308,36 +289,3 @@
             output.setdefault('events', []).append(
                 get_json_switched_table_refresh_event(self.context, self.request, AssociationsTable))
         return output
-
-
-#
-# Rich text paragraph renderer
-#
-
-@adapter_config(context=(IHTMLParagraph, IPyAMSLayer), provides=IParagraphRenderer)
-@template_config(template='templates/html-render.pt', layer=IPyAMSLayer)
-class HTMLParagraphRenderer(BaseContentProvider):
-    """Rich text paragraph renderer"""
-
-    illustration = None
-    illustration_renderer = None
-    language = None
-
-    def update(self):
-        i18n = II18n(self.context)
-        if self.language:
-            for attr in ('title', 'body'):
-                setattr(self, attr, i18n.get_attribute(attr, self.language, request=self.request))
-        else:
-            for attr in ('title', 'body'):
-                setattr(self, attr, i18n.query_attribute(attr, request=self.request))
-        self.illustration = IIllustration(self.context)
-        if self.illustration.data:
-            renderer = self.illustration_renderer = self.illustration.get_renderer()
-            if renderer is not None:
-                renderer.update()
-
-    def render_illustration(self):
-        if not self.illustration_renderer:
-            return ''
-        return self.illustration_renderer.render()