--- 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()