src/pyams_content/features/preview/zmi/__init__.py
changeset 487 093f201e3168
parent 238 2dc445ad2cf5
child 561 6da3deeea1b9
--- a/src/pyams_content/features/preview/zmi/__init__.py	Thu Mar 15 12:06:23 2018 +0100
+++ b/src/pyams_content/features/preview/zmi/__init__.py	Fri Mar 16 08:17:54 2018 +0100
@@ -18,6 +18,7 @@
 # import interfaces
 from pyams_content.features.preview.interfaces import IPreviewTarget
 from pyams_content.features.preview.zmi.interfaces import IPreviewForm
+from pyams_i18n.interfaces import II18nManager, INegotiator
 from pyams_skin.interfaces.viewlet import IToolbarViewletManager
 from pyams_skin.layer import IPyAMSLayer
 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
@@ -26,6 +27,8 @@
 # import packages
 from pyams_pagelet.pagelet import pagelet_config
 from pyams_skin.viewlet.toolbar import ToolbarAction
+from pyams_template.template import template_config
+from pyams_utils.registry import get_utility
 from pyams_viewlet.viewlet import viewlet_config
 from pyams_zmi.form import AdminDialogDisplayForm
 from z3c.form import field
@@ -45,16 +48,35 @@
     label_css_class = 'fa fa-newspaper-o'
     css_class = 'btn btn-xs btn-default'
 
-    url = 'preview.html'
+    url = 'content-preview.html'
     modal_target = True
 
 
-@pagelet_config(name='preview.html', context=IPreviewTarget, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
+@pagelet_config(name='content-preview.html', context=IPreviewTarget, layer=IPyAMSLayer,
+                permission=VIEW_SYSTEM_PERMISSION)
+@template_config(template='templates/preview.pt', layer=IPyAMSLayer)
 @implementer(IPreviewForm)
 class PreviewForm(AdminDialogDisplayForm):
     """Content preview form"""
 
     legend = _("Content preview")
+
+    @property
+    def title(self):
+        translate = self.request.localizer.translate
+        return translate(_("{title} ({preview})")).format(title=super(PreviewForm, self).title,
+                                                          preview=translate(_("preview")))
+
     dialog_class = 'modal-max'
 
     fields = field.Fields(Interface)
+    languages = None
+
+    def __init__(self, context, request):
+        super(PreviewForm, self).__init__(context, request)
+        i18n = II18nManager(context, None)
+        if i18n is not None:
+            self.languages = i18n.get_languages()
+        else:
+            negotiator = get_utility(INegotiator)
+            self.languages = (negotiator.server_language, )