7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
|
12 from pyams_form.form import ajax_config |
|
13 from pyams_pagelet.pagelet import pagelet_config |
12 |
14 |
13 __docformat__ = 'restructuredtext' |
15 __docformat__ = 'restructuredtext' |
14 |
16 |
15 |
17 |
16 # import standard library |
18 # import standard library |
17 |
19 |
18 # import interfaces |
20 # import interfaces |
19 from pyams_form.interfaces.form import IInnerTabForm |
21 from pyams_form.interfaces.form import IInnerTabForm |
20 from pyams_portal.interfaces import IPortlet, IPortalTemplate, IPortalPage, MANAGE_TEMPLATE_PERMISSION |
22 from pyams_portal.interfaces import IPortlet, IPortalTemplate, IPortalPage, MANAGE_TEMPLATE_PERMISSION, \ |
|
23 IPortletSettings, IPortletRendererSettings |
21 from pyams_skin.layer import IPyAMSLayer |
24 from pyams_skin.layer import IPyAMSLayer |
22 |
25 |
23 # import packages |
26 # import packages |
|
27 from pyams_portal.zmi.widget import PortletRendererFieldWidget |
24 from pyams_template.template import template_config |
28 from pyams_template.template import template_config |
25 from pyams_utils.adapter import adapter_config |
29 from pyams_utils.adapter import adapter_config |
26 from pyams_utils.url import absolute_url |
30 from pyams_utils.url import absolute_url |
27 from pyams_zmi.form import AdminDialogEditForm, InnerAdminEditForm |
31 from pyams_zmi.form import AdminDialogEditForm, InnerAdminEditForm |
28 from pyramid.decorator import reify |
32 from pyramid.decorator import reify |
94 |
98 |
95 edit_permission = MANAGE_TEMPLATE_PERMISSION |
99 edit_permission = MANAGE_TEMPLATE_PERMISSION |
96 |
100 |
97 @property |
101 @property |
98 def fields(self): |
102 def fields(self): |
99 return field.Fields(self.parent_form.settings).omit('__name__') |
103 fields = field.Fields(self.parent_form.settings).omit('__name__', 'renderer') + \ |
|
104 field.Fields(self.parent_form.settings).select('renderer') |
|
105 fields['renderer'].widgetFactory = PortletRendererFieldWidget |
|
106 return fields |
100 |
107 |
101 weight = 10 |
108 weight = 10 |
|
109 |
|
110 |
|
111 # |
|
112 # Portlet renderer properties edit form |
|
113 # |
|
114 |
|
115 @pagelet_config(name='renderer-properties.html', context=IPortletSettings, layer=IPyAMSLayer, |
|
116 permission=MANAGE_TEMPLATE_PERMISSION) |
|
117 @ajax_config(name='renderer-properties.json', context=IPortletSettings, layer=IPyAMSLayer) |
|
118 class PortletRendererPropertiesEditForm(AdminDialogEditForm): |
|
119 """Portlet renderer properties edit form""" |
|
120 |
|
121 prefix = 'portlet_renderer_properties.' |
|
122 |
|
123 legend = _("Edit renderer properties") |
|
124 icon_css_class = 'fa fa-fw fa-pencil-square-o' |
|
125 |
|
126 @property |
|
127 def fields(self): |
|
128 renderer = self.context.get_renderer(self.request) |
|
129 return field.Fields(renderer.settings_interface or Interface) |
|
130 |
|
131 edit_permission = MANAGE_TEMPLATE_PERMISSION |
|
132 |
|
133 def getContent(self): |
|
134 return IPortletRendererSettings(self.context) |