src/pyams_content/component/gallery/zmi/file.py
changeset 975 4d55824db030
parent 845 6b039f09a91c
child 976 5d23f030767c
equal deleted inserted replaced
974:b6f60eb4346c 975:4d55824db030
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 
    15 from pyramid.renderers import render
    16 # import standard library
    16 from z3c.form import field
    17 
    17 from z3c.form.interfaces import NOT_CHANGED
    18 # import interfaces
    18 from zope.lifecycleevent import ObjectCreatedEvent
    19 from pyams_content.component.gallery.interfaces import IGallery, IGalleryFile, IGalleryParagraph, \
    19 from zope.location import locate
    20     GALLERY_FILE_HIDDEN_FIELDS
    20 from zope.schema.interfaces import WrongType
    21 from pyams_content.component.gallery.zmi.interfaces import IGalleryMediasAddFields, IGalleryContentsView
    21 
       
    22 from pyams_content import _
       
    23 from pyams_content.component.gallery.file import GalleryFile
       
    24 from pyams_content.component.gallery.interfaces import GALLERY_FILE_HIDDEN_FIELDS, IGallery, IGalleryFile, \
       
    25     IGalleryParagraph
       
    26 from pyams_content.component.gallery.zmi.interfaces import IGalleryContentsView, IGalleryMediasAddFields
    22 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    27 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    23 from pyams_file.interfaces.archive import IArchiveExtractor
       
    24 from pyams_form.interfaces.form import IFormContextPermissionChecker
       
    25 from pyams_i18n.interfaces import II18n
       
    26 from pyams_skin.interfaces.viewlet import IWidgetTitleViewletManager, IContextActions
       
    27 from pyams_skin.layer import IPyAMSLayer
       
    28 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION, FORBIDDEN_PERMISSION
       
    29 from z3c.form.interfaces import NOT_CHANGED
       
    30 from zope.schema.interfaces import WrongType
       
    31 
       
    32 # import packages
       
    33 from pyams_content.component.gallery.file import GalleryFile
       
    34 from pyams_content.shared.common import IWfSharedContent
    28 from pyams_content.shared.common import IWfSharedContent
    35 from pyams_content.shared.common.zmi import WfSharedContentPermissionMixin
    29 from pyams_content.shared.common.zmi import WfSharedContentPermissionMixin
    36 from pyams_file.file import get_magic_content_type
    30 from pyams_file.file import get_magic_content_type
       
    31 from pyams_file.interfaces.archive import IArchiveExtractor
    37 from pyams_file.zmi.file import FilePropertiesAction
    32 from pyams_file.zmi.file import FilePropertiesAction
    38 from pyams_form.form import AJAXAddForm, ajax_config
    33 from pyams_form.form import AJAXAddForm, ajax_config
    39 from pyams_form.group import NamedWidgetsGroup
    34 from pyams_form.group import NamedWidgetsGroup
       
    35 from pyams_form.interfaces.form import IFormContextPermissionChecker
       
    36 from pyams_i18n.interfaces import II18n
    40 from pyams_pagelet.pagelet import pagelet_config
    37 from pyams_pagelet.pagelet import pagelet_config
    41 from pyams_skin.event import get_json_refresh_event
    38 from pyams_skin.event import get_json_refresh_event
    42 from pyams_skin.viewlet.toolbar import ToolbarAction, JsToolbarActionItem
    39 from pyams_skin.interfaces.viewlet import IContextActions, IWidgetTitleViewletManager
       
    40 from pyams_skin.layer import IPyAMSLayer
       
    41 from pyams_skin.viewlet.toolbar import JsToolbarActionItem, ToolbarAction
       
    42 from pyams_utils.interfaces import FORBIDDEN_PERMISSION, VIEW_SYSTEM_PERMISSION
    43 from pyams_utils.registry import query_utility
    43 from pyams_utils.registry import query_utility
    44 from pyams_utils.traversing import get_parent
    44 from pyams_utils.traversing import get_parent
    45 from pyams_utils.url import absolute_url
    45 from pyams_utils.url import absolute_url
    46 from pyams_viewlet.viewlet import viewlet_config
    46 from pyams_viewlet.viewlet import viewlet_config
    47 from pyams_zmi.form import AdminDialogEditForm, AdminDialogAddForm
    47 from pyams_zmi.form import AdminDialogAddForm, AdminDialogEditForm
    48 from pyramid.renderers import render
       
    49 from z3c.form import field
       
    50 from zope.lifecycleevent import ObjectCreatedEvent
       
    51 from zope.location import locate
       
    52 
       
    53 from pyams_content import _
       
    54 
    48 
    55 
    49 
    56 @viewlet_config(name='add-media.menu', context=IGallery, view=IGalleryContentsView, manager=IWidgetTitleViewletManager)
    50 @viewlet_config(name='add-media.menu', context=IGallery, view=IGalleryContentsView, manager=IWidgetTitleViewletManager)
    57 class GalleryMediaAddMenu(WfSharedContentPermissionMixin, ToolbarAction):
    51 class GalleryMediaAddMenu(WfSharedContentPermissionMixin, ToolbarAction):
    58     """Gallery media add menu"""
    52     """Gallery media add menu"""
   113                 else:
   107                 else:
   114                     registry.notify(ObjectCreatedEvent(media))
   108                     registry.notify(ObjectCreatedEvent(media))
   115                     medias.append(media)
   109                     medias.append(media)
   116             for media in medias:
   110             for media in medias:
   117                 media.author = data.get('author')
   111                 media.author = data.get('author')
   118                 media.author_comments = data.get('author_comments')
       
   119                 self.context.append(media)
   112                 self.context.append(media)
   120         return None
   113         return None
   121 
   114 
   122     def get_ajax_output(self, changes):
   115     def get_ajax_output(self, changes):
   123         return {
   116         return {
   188 
   181 
   189     @property
   182     @property
   190     def title(self):
   183     def title(self):
   191         gallery = get_parent(self.context, IGallery)
   184         gallery = get_parent(self.context, IGallery)
   192         return II18n(gallery).query_attribute('title', request=self.request)
   185         return II18n(gallery).query_attribute('title', request=self.request)
   193 
       
   194     def updateWidgets(self, prefix=None):
       
   195         super(GalleryFilePropertiesEditForm, self).updateWidgets(prefix)
       
   196         if 'pif_number' in self.widgets:
       
   197             self.widgets['pif_number'].input_css_class = 'col-md-3'
       
   198 
   186 
   199     def updateGroups(self):
   187     def updateGroups(self):
   200         self.add_group(NamedWidgetsGroup(self, 'audio_file', self.widgets,
   188         self.add_group(NamedWidgetsGroup(self, 'audio_file', self.widgets,
   201                                          ('sound', 'sound_title', 'sound_description'),
   189                                          ('sound', 'sound_title', 'sound_description'),
   202                                          bordered=False,
   190                                          bordered=False,