22 from z3c.table.column import GetAttrColumn |
22 from z3c.table.column import GetAttrColumn |
23 from z3c.table.interfaces import IColumn, IValues |
23 from z3c.table.interfaces import IColumn, IValues |
24 from zope.interface import Interface, Invalid, implementer |
24 from zope.interface import Interface, Invalid, implementer |
25 |
25 |
26 from pyams_content.component.paragraph import BaseParagraph |
26 from pyams_content.component.paragraph import BaseParagraph |
27 from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget, \ |
27 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget |
28 PARAGRAPH_HIDDEN_FIELDS |
|
29 from pyams_content.component.paragraph.interfaces.pictogram import IPictogramContainer, IPictogramContainerTarget, \ |
28 from pyams_content.component.paragraph.interfaces.pictogram import IPictogramContainer, IPictogramContainerTarget, \ |
30 IPictogramItem, IPictogramParagraph, PICTOGRAM_PARAGRAPH_TYPE |
29 IPictogramItem, IPictogramParagraph, PICTOGRAM_PARAGRAPH_TYPE |
31 from pyams_content.component.paragraph.pictogram import PictogramItem, PictogramParagraph |
30 from pyams_content.component.paragraph.pictogram import PictogramItem, PictogramParagraph |
32 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \ |
31 from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \ |
33 BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, IParagraphInnerEditFormButtons |
32 BaseParagraphAddForm, BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, IParagraphInnerEditFormButtons |
34 from pyams_content.component.paragraph.zmi import IParagraphContainerView |
33 from pyams_content.component.paragraph.zmi import IParagraphContainerView |
35 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor |
34 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor |
36 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget |
|
37 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
35 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION |
38 from pyams_content.reference.pictograms.zmi.widget import PictogramSelectFieldWidget |
36 from pyams_content.reference.pictograms.zmi.widget import PictogramSelectFieldWidget |
39 from pyams_content.shared.common import IWfSharedContent |
37 from pyams_content.shared.common import IWfSharedContent |
40 from pyams_file.zmi.image import render_image |
38 from pyams_file.zmi.image import render_image |
41 from pyams_form.form import AJAXAddForm, ajax_config |
39 from pyams_form.form import AJAXAddForm, ajax_config |
84 |
82 |
85 @pagelet_config(name='add-pictogram-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer, |
83 @pagelet_config(name='add-pictogram-paragraph.html', context=IParagraphContainerTarget, layer=IPyAMSLayer, |
86 permission=MANAGE_CONTENT_PERMISSION) |
84 permission=MANAGE_CONTENT_PERMISSION) |
87 @ajax_config(name='add-pictogram-paragraph.json', context=IParagraphContainerTarget, layer=IPyAMSLayer, |
85 @ajax_config(name='add-pictogram-paragraph.json', context=IParagraphContainerTarget, layer=IPyAMSLayer, |
88 base=BaseParagraphAJAXAddForm) |
86 base=BaseParagraphAJAXAddForm) |
89 class PictogramParagraphAddForm(AdminDialogAddForm): |
87 class PictogramParagraphAddForm(BaseParagraphAddForm): |
90 """Pictogram paragraph add form""" |
88 """Pictogram paragraph add form""" |
91 |
89 |
92 legend = _("Add new pictogram paragraph") |
90 legend = _("Add new pictogram paragraph") |
93 icon_css_class = 'fa fa-fw ' + PictogramParagraph.icon_class |
91 |
94 |
92 content_interface = IPictogramParagraph |
95 fields = field.Fields(IPictogramParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS) |
|
96 edit_permission = MANAGE_CONTENT_PERMISSION |
|
97 |
|
98 def create(self, data): |
|
99 return PictogramParagraph() |
|
100 |
|
101 def add(self, object): |
|
102 IParagraphContainer(self.context).append(object) |
|
103 |
93 |
104 |
94 |
105 @pagelet_config(name='properties.html', context=IPictogramParagraph, layer=IPyAMSLayer, |
95 @pagelet_config(name='properties.html', context=IPictogramParagraph, layer=IPyAMSLayer, |
106 permission=MANAGE_CONTENT_PERMISSION) |
96 permission=MANAGE_CONTENT_PERMISSION) |
107 @ajax_config(name='properties.json', context=IPictogramParagraph, layer=IPyAMSLayer, |
97 @ajax_config(name='properties.json', context=IPictogramParagraph, layer=IPyAMSLayer, |
115 def title(self): |
105 def title(self): |
116 content = get_parent(self.context, IWfSharedContent) |
106 content = get_parent(self.context, IWfSharedContent) |
117 return II18n(content).query_attribute('title', request=self.request) |
107 return II18n(content).query_attribute('title', request=self.request) |
118 |
108 |
119 legend = _("Edit pictogram paragraph properties") |
109 legend = _("Edit pictogram paragraph properties") |
120 icon_css_class = 'fa fa-fw ' + PictogramParagraph.icon_class |
110 |
121 |
111 content_interface = IPictogramParagraph |
122 fields = field.Fields(IPictogramParagraph).omit(*PARAGRAPH_HIDDEN_FIELDS) |
|
123 fields['renderer'].widgetFactory = RendererFieldWidget |
|
124 |
|
125 edit_permission = MANAGE_CONTENT_PERMISSION |
|
126 |
112 |
127 def get_ajax_output(self, changes): |
113 def get_ajax_output(self, changes): |
128 output = super(self.__class__, self).get_ajax_output(changes) |
114 output = super(self.__class__, self).get_ajax_output(changes) |
129 updated = changes.get(IPictogramParagraph, ()) |
115 updated = changes.get(IPictogramParagraph, ()) |
130 if 'renderer' in updated: |
116 if 'renderer' in updated: |