7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
12 from pyams_file.interfaces import IFileInfo |
|
13 |
12 |
14 __docformat__ = 'restructuredtext' |
13 __docformat__ = 'restructuredtext' |
15 |
14 |
16 |
15 |
17 # import standard library |
16 # import standard library |
18 import json |
17 import json |
19 import zipfile |
18 import zipfile |
|
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, IGalleryFile |
23 from pyams_content.component.gallery.interfaces import IGallery, IGalleryRenderer |
24 from pyams_content.component.gallery.zmi.interfaces import IGalleryImageAddFields, IGalleryImagesView |
24 from pyams_content.component.gallery.zmi.interfaces import IGalleryImageAddFields, IGalleryImagesView |
25 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
25 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
|
26 from pyams_file.interfaces import IFileInfo |
26 from pyams_form.interfaces.form import IWidgetsPrefixViewletsManager |
27 from pyams_form.interfaces.form import IWidgetsPrefixViewletsManager |
27 from pyams_i18n.interfaces import II18n |
28 from pyams_i18n.interfaces import II18n |
28 from pyams_skin.layer import IPyAMSLayer |
29 from pyams_skin.layer import IPyAMSLayer |
29 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
30 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
|
31 from pyramid.interfaces import IView |
30 |
32 |
31 # import packages |
33 # import packages |
32 from pyams_content.shared.common.zmi import WfSharedContentPermissionMixin |
34 from pyams_content.shared.common.zmi import WfSharedContentPermissionMixin |
33 from pyams_form.form import AJAXEditForm |
35 from pyams_form.form import AJAXEditForm |
34 from pyams_pagelet.pagelet import pagelet_config |
36 from pyams_pagelet.pagelet import pagelet_config |
35 from pyams_template.template import template_config, get_view_template |
37 from pyams_template.template import template_config, get_view_template |
36 from pyams_utils.adapter import adapter_config, ContextRequestAdapter |
38 from pyams_utils.adapter import adapter_config, ContextRequestAdapter |
|
39 from pyams_utils.url import absolute_url |
37 from pyams_viewlet.viewlet import viewlet_config, Viewlet |
40 from pyams_viewlet.viewlet import viewlet_config, Viewlet |
38 from pyams_zmi.form import AdminDialogEditForm, AdminDialogDisplayForm |
41 from pyams_zmi.form import AdminDialogEditForm, AdminDialogDisplayForm |
39 from pyramid.exceptions import NotFound |
42 from pyramid.exceptions import NotFound |
40 from pyramid.renderers import render_to_response |
43 from pyramid.renderers import render_to_response |
41 from pyramid.response import Response |
44 from pyramid.response import Response |
120 return render_to_response('templates/gallery-images.pt', {'view': self}, request=self.request) |
123 return render_to_response('templates/gallery-images.pt', {'view': self}, request=self.request) |
121 |
124 |
122 def get_title(self, image): |
125 def get_title(self, image): |
123 return II18n(image).query_attribute('title', request=self.request) |
126 return II18n(image).query_attribute('title', request=self.request) |
124 |
127 |
|
128 def get_thumbnail_target(self, media): |
|
129 registry = self.request.registry |
|
130 view = registry.queryMultiAdapter((media, self.request), IView, name='preview.html') |
|
131 if view is not None: |
|
132 return absolute_url(media, self.request, 'preview.html') |
|
133 |
125 |
134 |
126 @view_config(name='set-images-order.json', context=IGallery, request_type=IPyAMSLayer, |
135 @view_config(name='set-images-order.json', context=IGallery, request_type=IPyAMSLayer, |
127 permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True) |
136 permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True) |
128 def set_images_order(request): |
137 def set_images_order(request): |
129 """Set gallery images order""" |
138 """Set gallery images order""" |