20 IParagraphRenderer |
20 IParagraphRenderer |
21 from pyams_content.component.paragraph.interfaces.keypoint import IKeypointsParagraph, KEYPOINTS_PARAGRAPH_TYPE |
21 from pyams_content.component.paragraph.interfaces.keypoint import IKeypointsParagraph, KEYPOINTS_PARAGRAPH_TYPE |
22 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphContainerView |
22 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphContainerView |
23 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
23 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
24 from pyams_form.interfaces.form import IInnerForm, IEditFormButtons |
24 from pyams_form.interfaces.form import IInnerForm, IEditFormButtons |
25 from pyams_i18n.interfaces import II18n |
|
26 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu |
25 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu |
27 from pyams_skin.layer import IPyAMSLayer |
26 from pyams_skin.layer import IPyAMSLayer |
28 from z3c.form.interfaces import INPUT_MODE |
27 from z3c.form.interfaces import INPUT_MODE |
29 |
28 |
30 # import packages |
29 # import packages |
31 from pyams_content.component.paragraph.keypoint import KeypointsParagraph |
30 from pyams_content.component.paragraph.keypoint import KeypointsParagraph |
32 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \ |
31 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \ |
33 BaseParagraphAddMenu, BaseParagraphPropertiesEditForm |
32 BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, get_json_paragraph_refresh_event |
34 from pyams_content.features.renderer.zmi import BaseRenderedContentRenderer |
33 from pyams_content.features.renderer.zmi import BaseRenderedContentRenderer |
35 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget |
34 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget |
36 from pyams_pagelet.pagelet import pagelet_config |
35 from pyams_pagelet.pagelet import pagelet_config |
|
36 from pyams_skin.event import get_json_widget_refresh_event |
37 from pyams_utils.adapter import adapter_config |
37 from pyams_utils.adapter import adapter_config |
38 from pyams_viewlet.viewlet import viewlet_config |
38 from pyams_viewlet.viewlet import viewlet_config |
39 from pyams_zmi.form import AdminDialogAddForm |
39 from pyams_zmi.form import AdminDialogAddForm |
40 from pyramid.view import view_config |
40 from pyramid.view import view_config |
41 from z3c.form import field, button |
41 from z3c.form import field, button |
88 @pagelet_config(name='properties.html', context=IKeypointsParagraph, layer=IPyAMSLayer, |
88 @pagelet_config(name='properties.html', context=IKeypointsParagraph, layer=IPyAMSLayer, |
89 permission=MANAGE_CONTENT_PERMISSION) |
89 permission=MANAGE_CONTENT_PERMISSION) |
90 class KeypointsParagraphPropertiesEditForm(BaseParagraphPropertiesEditForm): |
90 class KeypointsParagraphPropertiesEditForm(BaseParagraphPropertiesEditForm): |
91 """Key points paragraph properties edit form""" |
91 """Key points paragraph properties edit form""" |
92 |
92 |
|
93 prefix = 'keypoints_properties.' |
|
94 |
93 legend = _("Edit key points paragraph properties") |
95 legend = _("Edit key points paragraph properties") |
94 icon_css_class = 'fa fa-fw fa-key' |
96 icon_css_class = 'fa fa-fw fa-key' |
95 |
97 |
96 fields = field.Fields(IKeypointsParagraph).select('body', 'renderer') |
98 fields = field.Fields(IKeypointsParagraph).select('body', 'renderer') |
97 fields['renderer'].widgetFactory = RendererFieldWidget |
99 fields['renderer'].widgetFactory = RendererFieldWidget |
111 """Key points paragraph properties edit form, JSON renderer""" |
113 """Key points paragraph properties edit form, JSON renderer""" |
112 |
114 |
113 def get_ajax_output(self, changes): |
115 def get_ajax_output(self, changes): |
114 output = super(KeypointsParagraphPropertiesAJAXEditForm, self).get_ajax_output(changes) |
116 output = super(KeypointsParagraphPropertiesAJAXEditForm, self).get_ajax_output(changes) |
115 if 'body' in changes.get(IKeypointsParagraph, ()): |
117 if 'body' in changes.get(IKeypointsParagraph, ()): |
116 output.setdefault('events', []).append({ |
118 output.setdefault('events', []).append( |
117 'event': 'myams.refresh', |
119 get_json_paragraph_refresh_event(self.context, self.request)) |
118 'options': { |
|
119 'handler': 'PyAMS_content.paragraphs.refreshParagraph', |
|
120 'object_name': self.context.__name__, |
|
121 'title': II18n(self.context).query_attribute('title', request=self.request), |
|
122 'visible': self.context.visible |
|
123 } |
|
124 }) |
|
125 return output |
120 return output |
126 |
121 |
127 |
122 |
128 @adapter_config(context=(IKeypointsParagraph, IPyAMSLayer), provides=IParagraphInnerEditor) |
123 @adapter_config(context=(IKeypointsParagraph, IPyAMSLayer), provides=IParagraphInnerEditor) |
129 @implementer(IInnerForm) |
124 @implementer(IInnerForm) |
153 output = super(KeypointsParagraphInnerAJAXEditForm, self).get_ajax_output(changes) |
148 output = super(KeypointsParagraphInnerAJAXEditForm, self).get_ajax_output(changes) |
154 updated = changes.get(IKeypointsParagraph, ()) |
149 updated = changes.get(IKeypointsParagraph, ()) |
155 if 'renderer' in updated: |
150 if 'renderer' in updated: |
156 form = KeypointsParagraphInnerEditForm(self.context, self.request) |
151 form = KeypointsParagraphInnerEditForm(self.context, self.request) |
157 form.update() |
152 form.update() |
158 output.setdefault('events', []).append({ |
153 output.setdefault('events', []).append( |
159 'event': 'myams.refresh', |
154 get_json_widget_refresh_event(self.context, self.request, KeypointsParagraphInnerEditForm, 'renderer')) |
160 'options': { |
|
161 'handler': 'MyAMS;skin.refreshWidget', |
|
162 'parent_id': '{0}_{1}_{2}'.format( |
|
163 self.context.__class__.__name__, |
|
164 getattr(form.getContent(), '__name__', 'noname').replace('++', ''), |
|
165 form.id), |
|
166 'widget_name': form.widgets['renderer'].name, |
|
167 'content': form.widgets['renderer'].render() |
|
168 } |
|
169 }) |
|
170 return output |
155 return output |
171 |
156 |
172 |
157 |
173 # |
158 # |
174 # Key points paragraph renderer |
159 # Key points paragraph renderer |