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 |
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 IGalleryContentsView |
25 from pyams_content.features.renderer.interfaces import IContentRenderer |
|
26 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
25 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
27 from pyams_file.interfaces import IFileInfo |
26 from pyams_file.interfaces import IFileInfo |
28 from pyams_form.interfaces.form import IWidgetsPrefixViewletsManager |
27 from pyams_form.interfaces.form import IWidgetsPrefixViewletsManager |
29 from pyams_i18n.interfaces import II18n |
28 from pyams_i18n.interfaces import II18n |
30 from pyams_skin.layer import IPyAMSLayer |
29 from pyams_skin.layer import IPyAMSLayer |
31 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
30 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
32 from pyramid.interfaces import IView |
31 from pyramid.interfaces import IView |
33 |
32 |
34 # import packages |
33 # import packages |
35 from pyams_content.shared.common.zmi import WfSharedContentPermissionMixin |
34 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_content.features.renderer.zmi.widget import RendererFieldWidget |
38 from pyams_form.form import AJAXEditForm |
36 from pyams_form.form import AJAXEditForm |
39 from pyams_pagelet.pagelet import pagelet_config |
37 from pyams_pagelet.pagelet import pagelet_config |
40 from pyams_template.template import template_config |
38 from pyams_template.template import template_config |
41 from pyams_utils.adapter import adapter_config |
|
42 from pyams_utils.url import absolute_url |
39 from pyams_utils.url import absolute_url |
43 from pyams_viewlet.viewlet import viewlet_config, Viewlet |
40 from pyams_viewlet.viewlet import viewlet_config, Viewlet |
44 from pyams_zmi.form import AdminDialogEditForm, AdminDialogDisplayForm |
41 from pyams_zmi.form import AdminDialogEditForm, AdminDialogDisplayForm |
45 from pyramid.exceptions import NotFound |
42 from pyramid.exceptions import NotFound |
46 from pyramid.renderers import render_to_response |
43 from pyramid.renderers import render_to_response |
57 # |
54 # |
58 |
55 |
59 @pagelet_config(name='properties.html', context=IGallery, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) |
56 @pagelet_config(name='properties.html', context=IGallery, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) |
60 class GalleryPropertiesEditForm(AdminDialogEditForm): |
57 class GalleryPropertiesEditForm(AdminDialogEditForm): |
61 """Gallery properties edit form""" |
58 """Gallery properties edit form""" |
|
59 |
|
60 prefix = 'gallery_properties.' |
62 |
61 |
63 legend = _("Update gallery properties") |
62 legend = _("Update gallery properties") |
64 icon_css_class = 'fa fa-fw fa-picture-o' |
63 icon_css_class = 'fa fa-fw fa-picture-o' |
65 |
64 |
66 fields = field.Fields(IGallery).omit('__parent__', '__file__') |
65 fields = field.Fields(IGallery).omit('__parent__', '__file__') |
80 class GalleryPropertiesAJAXEditForm(AJAXEditForm, GalleryPropertiesEditForm): |
79 class GalleryPropertiesAJAXEditForm(AJAXEditForm, GalleryPropertiesEditForm): |
81 """Gallery properties edit form, JSON renderer""" |
80 """Gallery properties edit form, JSON renderer""" |
82 |
81 |
83 def get_ajax_output(self, changes): |
82 def get_ajax_output(self, changes): |
84 if 'title' in changes.get(IGallery, ()): |
83 if 'title' in changes.get(IGallery, ()): |
85 return {'status': 'reload', |
84 return { |
86 'location': '#external-files.html'} |
85 'status': 'reload', |
|
86 'location': '#external-files.html' |
|
87 } |
87 else: |
88 else: |
88 return super(GalleryPropertiesAJAXEditForm, self).get_ajax_output(changes) |
89 return super(GalleryPropertiesAJAXEditForm, self).get_ajax_output(changes) |
89 |
90 |
90 |
91 |
91 # |
92 # |