src/pyams_content/component/gallery/zmi/__init__.py
changeset 362 8fc21a7ef206
parent 315 8654d1faa27d
child 363 86d1a240d4dc
equal deleted inserted replaced
361:68f6464a97ea 362:8fc21a7ef206
     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"""