src/pyams_content/component/paragraph/zmi/preview.py
changeset 406 5527bc086216
parent 245 6b02caf97666
child 431 a162e9f348f7
--- a/src/pyams_content/component/paragraph/zmi/preview.py	Thu Feb 22 10:15:00 2018 +0100
+++ b/src/pyams_content/component/paragraph/zmi/preview.py	Thu Feb 22 12:00:05 2018 +0100
@@ -17,16 +17,20 @@
 
 # import interfaces
 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphContainer, \
-    IParagraphSummary
+    IParagraphPreview
 from pyams_content.features.preview.zmi.interfaces import IPreviewForm
 from pyams_form.interfaces.form import IWidgetsSuffixViewletsManager
 from pyams_i18n.interfaces import II18nManager
+from pyams_skin.interfaces import IUserSkinnable
 from pyams_skin.layer import IPyAMSLayer
+from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
 
 # import packages
+from pyams_skin.skin import apply_skin
 from pyams_template.template import template_config
-from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
+from pyams_utils.request import copy_request
 from pyams_viewlet.viewlet import viewlet_config, Viewlet
+from pyramid.decorator import reify
 
 
 @viewlet_config(name='paragraphs-preview', context=IParagraphContainerTarget, layer=IPyAMSLayer,
@@ -42,8 +46,17 @@
                            if para.visible]
         self.languages = II18nManager(self.context).get_languages()
 
+    @reify
+    def render_request(self):
+        request = copy_request(self.request)
+        root = self.request.root
+        skin = IUserSkinnable(root).get_skin()
+        if skin is not None:
+            apply_skin(request, skin)
+        return request
+
     def render_paragraph(self, paragraph, language=None):
-        renderer = self.request.registry.queryMultiAdapter((paragraph, self.request), IParagraphSummary)
+        renderer = self.request.registry.queryMultiAdapter((paragraph, self.render_request), IParagraphPreview)
         if renderer is not None:
             renderer.language = language
             renderer.update()