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