16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 # import interfaces |
19 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, \ |
19 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, \ |
20 IParagraphContainer |
20 IParagraphContainer |
21 from pyams_content.component.illustration.interfaces import IIllustration, IIllustrationParagraph, \ |
21 from pyams_content.component.illustration.interfaces import IIllustrationTarget, IIllustration, \ |
22 ILLUSTRATION_PARAGRAPH_TYPE |
22 IIllustrationParagraph, ILLUSTRATION_PARAGRAPH_TYPE |
23 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphContainerView |
23 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphContainerView, \ |
|
24 IParagraphContainerTable, IParagraphTitleToolbar |
24 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
25 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
25 from pyams_form.interfaces.form import IInnerForm |
26 from pyams_form.interfaces.form import IInnerForm |
26 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu |
27 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu |
27 from pyams_skin.layer import IPyAMSLayer |
28 from pyams_skin.layer import IPyAMSLayer |
|
29 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION |
28 from transaction.interfaces import ITransactionManager |
30 from transaction.interfaces import ITransactionManager |
29 from z3c.form.interfaces import INPUT_MODE |
31 from z3c.form.interfaces import INPUT_MODE |
30 |
32 |
31 # import packages |
33 # import packages |
32 from pyams_content.component.illustration.paragraph import Illustration |
34 from pyams_content.component.illustration.paragraph import Illustration |
34 BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, get_json_paragraph_refresh_event, IParagraphEditFormButtons |
36 BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, get_json_paragraph_refresh_event, IParagraphEditFormButtons |
35 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget |
37 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget |
36 from pyams_form.form import ajax_config |
38 from pyams_form.form import ajax_config |
37 from pyams_pagelet.pagelet import pagelet_config |
39 from pyams_pagelet.pagelet import pagelet_config |
38 from pyams_skin.event import get_json_form_refresh_event |
40 from pyams_skin.event import get_json_form_refresh_event |
|
41 from pyams_template.template import template_config |
39 from pyams_utils.adapter import adapter_config |
42 from pyams_utils.adapter import adapter_config |
40 from pyams_viewlet.viewlet import viewlet_config |
43 from pyams_viewlet.viewlet import viewlet_config, Viewlet |
41 from pyams_zmi.form import AdminDialogAddForm |
44 from pyams_zmi.form import AdminDialogAddForm |
42 from z3c.form import field, button |
45 from z3c.form import field, button |
43 from zope.interface import implementer |
46 from zope.interface import implementer |
44 |
47 |
45 from pyams_content import _ |
48 from pyams_content import _ |
145 # we have to commit transaction to be able to handle blobs... |
148 # we have to commit transaction to be able to handle blobs... |
146 ITransactionManager(self.context).get().commit() |
149 ITransactionManager(self.context).get().commit() |
147 output.setdefault('events', []).append(get_json_form_refresh_event(self.context, self.request, |
150 output.setdefault('events', []).append(get_json_form_refresh_event(self.context, self.request, |
148 IllustrationInnerEditForm)) |
151 IllustrationInnerEditForm)) |
149 return output |
152 return output |
|
153 |
|
154 |
|
155 # |
|
156 # Paragraph container illustration marker |
|
157 # |
|
158 |
|
159 @viewlet_config(name='illustration', context=IIllustrationTarget, layer=IPyAMSLayer, view=IParagraphContainerTable, |
|
160 manager=IParagraphTitleToolbar, permission=VIEW_SYSTEM_PERMISSION, weight=5) |
|
161 @template_config(template='templates/paragraph-illustration-icon.pt', layer=IPyAMSLayer) |
|
162 class ParagraphContainerIllustrationMarker(Viewlet): |
|
163 """Paragraph container illustration marker column""" |
|
164 |
|
165 weight = 5 |
|
166 action_class = 'action illustration nowrap width-40' |
|
167 icon_class = 'fa fa-fw fa-picture-o' |
|
168 icon_hint = _("Illustration") |
|
169 |
|
170 marker_type = 'illustration' |
|
171 |
|
172 def render(self): |
|
173 illustration = IIllustration(self.context, None) |
|
174 if illustration and illustration.data: |
|
175 for value in illustration.data.values(): |
|
176 if value: |
|
177 return super(ParagraphContainerIllustrationMarker, self).render() |
|
178 return '' |