18 import zipfile |
18 import zipfile |
19 |
19 |
20 from io import BytesIO |
20 from io import BytesIO |
21 |
21 |
22 # import interfaces |
22 # import interfaces |
23 from pyams_content.component.gallery.interfaces import IGallery, IGalleryRenderer |
23 from pyams_content.component.gallery.interfaces import IGallery |
24 from pyams_content.component.gallery.zmi.interfaces import IGalleryMediasAddFields, IGalleryContentsView |
24 from pyams_content.component.gallery.zmi.interfaces import IGalleryMediasAddFields, IGalleryContentsView |
|
25 from pyams_content.features.renderer.interfaces import IContentRenderer |
25 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
26 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
26 from pyams_file.interfaces import IFileInfo |
27 from pyams_file.interfaces import IFileInfo |
27 from pyams_form.interfaces.form import IWidgetsPrefixViewletsManager |
28 from pyams_form.interfaces.form import IWidgetsPrefixViewletsManager |
28 from pyams_i18n.interfaces import II18n |
29 from pyams_i18n.interfaces import II18n |
29 from pyams_skin.layer import IPyAMSLayer |
30 from pyams_skin.layer import IPyAMSLayer |
30 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
31 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
31 from pyramid.interfaces import IView |
32 from pyramid.interfaces import IView |
32 |
33 |
33 # import packages |
34 # import packages |
34 from pyams_content.shared.common.zmi import WfSharedContentPermissionMixin |
35 from pyams_content.shared.common.zmi import WfSharedContentPermissionMixin |
|
36 from pyams_content.features.renderer.zmi import BaseContentRenderer |
|
37 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget |
35 from pyams_form.form import AJAXEditForm |
38 from pyams_form.form import AJAXEditForm |
36 from pyams_pagelet.pagelet import pagelet_config |
39 from pyams_pagelet.pagelet import pagelet_config |
37 from pyams_template.template import template_config, get_view_template |
40 from pyams_template.template import template_config |
38 from pyams_utils.adapter import adapter_config, ContextRequestAdapter |
41 from pyams_utils.adapter import adapter_config |
39 from pyams_utils.url import absolute_url |
42 from pyams_utils.url import absolute_url |
40 from pyams_viewlet.viewlet import viewlet_config, Viewlet |
43 from pyams_viewlet.viewlet import viewlet_config, Viewlet |
41 from pyams_zmi.form import AdminDialogEditForm, AdminDialogDisplayForm |
44 from pyams_zmi.form import AdminDialogEditForm, AdminDialogDisplayForm |
42 from pyramid.exceptions import NotFound |
45 from pyramid.exceptions import NotFound |
43 from pyramid.renderers import render_to_response |
46 from pyramid.renderers import render_to_response |
59 |
62 |
60 legend = _("Update gallery properties") |
63 legend = _("Update gallery properties") |
61 icon_css_class = 'fa fa-fw fa-picture-o' |
64 icon_css_class = 'fa fa-fw fa-picture-o' |
62 |
65 |
63 fields = field.Fields(IGallery).omit('__parent__', '__file__') |
66 fields = field.Fields(IGallery).omit('__parent__', '__file__') |
|
67 fields['renderer'].widgetFactory = RendererFieldWidget |
|
68 |
64 ajax_handler = 'properties.json' |
69 ajax_handler = 'properties.json' |
65 edit_permission = MANAGE_CONTENT_PERMISSION |
70 edit_permission = MANAGE_CONTENT_PERMISSION |
66 |
71 |
67 def updateWidgets(self, prefix=None): |
72 def updateWidgets(self, prefix=None): |
68 super(GalleryPropertiesEditForm, self).updateWidgets(prefix) |
73 super(GalleryPropertiesEditForm, self).updateWidgets(prefix) |
152 media.visible = not media.visible |
157 media.visible = not media.visible |
153 return {'visible': media.visible} |
158 return {'visible': media.visible} |
154 |
159 |
155 |
160 |
156 # |
161 # |
157 # Gallery renderers |
|
158 # |
|
159 |
|
160 class BaseGalleryRenderer(ContextRequestAdapter): |
|
161 """Base gallery renderer""" |
|
162 |
|
163 def update(self): |
|
164 pass |
|
165 |
|
166 render = get_view_template() |
|
167 |
|
168 |
|
169 @adapter_config(name='default', context=(IGallery, IPyAMSLayer), provides=IGalleryRenderer) |
|
170 @template_config(template='templates/renderer-default.pt', layer=IPyAMSLayer) |
|
171 class DefaultGalleryRenderer(BaseGalleryRenderer): |
|
172 """Default gallery renderer""" |
|
173 |
|
174 label = _("Default gallery renderer") |
|
175 weight = 1 |
|
176 |
|
177 |
|
178 # |
|
179 # Gallery medias downloader |
162 # Gallery medias downloader |
180 # |
163 # |
181 |
164 |
182 @view_config(name='get-medias.zip', context=IGallery, request_type=IPyAMSLayer, |
165 @view_config(name='get-medias.zip', context=IGallery, request_type=IPyAMSLayer, |
183 permission=VIEW_SYSTEM_PERMISSION) |
166 permission=VIEW_SYSTEM_PERMISSION) |