src/pyams_content/features/preview/zmi/__init__.py
changeset 487 093f201e3168
parent 238 2dc445ad2cf5
child 561 6da3deeea1b9
equal deleted inserted replaced
486:cb67e71dafff 487:093f201e3168
    16 # import standard library
    16 # import standard library
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_content.features.preview.interfaces import IPreviewTarget
    19 from pyams_content.features.preview.interfaces import IPreviewTarget
    20 from pyams_content.features.preview.zmi.interfaces import IPreviewForm
    20 from pyams_content.features.preview.zmi.interfaces import IPreviewForm
       
    21 from pyams_i18n.interfaces import II18nManager, INegotiator
    21 from pyams_skin.interfaces.viewlet import IToolbarViewletManager
    22 from pyams_skin.interfaces.viewlet import IToolbarViewletManager
    22 from pyams_skin.layer import IPyAMSLayer
    23 from pyams_skin.layer import IPyAMSLayer
    23 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
    24 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
    24 from pyams_zmi.layer import IAdminLayer
    25 from pyams_zmi.layer import IAdminLayer
    25 
    26 
    26 # import packages
    27 # import packages
    27 from pyams_pagelet.pagelet import pagelet_config
    28 from pyams_pagelet.pagelet import pagelet_config
    28 from pyams_skin.viewlet.toolbar import ToolbarAction
    29 from pyams_skin.viewlet.toolbar import ToolbarAction
       
    30 from pyams_template.template import template_config
       
    31 from pyams_utils.registry import get_utility
    29 from pyams_viewlet.viewlet import viewlet_config
    32 from pyams_viewlet.viewlet import viewlet_config
    30 from pyams_zmi.form import AdminDialogDisplayForm
    33 from pyams_zmi.form import AdminDialogDisplayForm
    31 from z3c.form import field
    34 from z3c.form import field
    32 from zope.interface import implementer, Interface
    35 from zope.interface import implementer, Interface
    33 
    36 
    43 
    46 
    44     group_css_class = 'btn-group margin-right-10'
    47     group_css_class = 'btn-group margin-right-10'
    45     label_css_class = 'fa fa-newspaper-o'
    48     label_css_class = 'fa fa-newspaper-o'
    46     css_class = 'btn btn-xs btn-default'
    49     css_class = 'btn btn-xs btn-default'
    47 
    50 
    48     url = 'preview.html'
    51     url = 'content-preview.html'
    49     modal_target = True
    52     modal_target = True
    50 
    53 
    51 
    54 
    52 @pagelet_config(name='preview.html', context=IPreviewTarget, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
    55 @pagelet_config(name='content-preview.html', context=IPreviewTarget, layer=IPyAMSLayer,
       
    56                 permission=VIEW_SYSTEM_PERMISSION)
       
    57 @template_config(template='templates/preview.pt', layer=IPyAMSLayer)
    53 @implementer(IPreviewForm)
    58 @implementer(IPreviewForm)
    54 class PreviewForm(AdminDialogDisplayForm):
    59 class PreviewForm(AdminDialogDisplayForm):
    55     """Content preview form"""
    60     """Content preview form"""
    56 
    61 
    57     legend = _("Content preview")
    62     legend = _("Content preview")
       
    63 
       
    64     @property
       
    65     def title(self):
       
    66         translate = self.request.localizer.translate
       
    67         return translate(_("{title} ({preview})")).format(title=super(PreviewForm, self).title,
       
    68                                                           preview=translate(_("preview")))
       
    69 
    58     dialog_class = 'modal-max'
    70     dialog_class = 'modal-max'
    59 
    71 
    60     fields = field.Fields(Interface)
    72     fields = field.Fields(Interface)
       
    73     languages = None
       
    74 
       
    75     def __init__(self, context, request):
       
    76         super(PreviewForm, self).__init__(context, request)
       
    77         i18n = II18nManager(context, None)
       
    78         if i18n is not None:
       
    79             self.languages = i18n.get_languages()
       
    80         else:
       
    81             negotiator = get_utility(INegotiator)
       
    82             self.languages = (negotiator.server_language, )