68 @property |
68 @property |
69 def url(self): |
69 def url(self): |
70 return absolute_url(self.request.root, self.request, 'admin#portal-templates.html') |
70 return absolute_url(self.request.root, self.request, 'admin#portal-templates.html') |
71 |
71 |
72 |
72 |
73 @adapter_config(context=(IPortalTemplateContainer, IAdminLayer, ITable), provides=ITableElementEditor) |
73 @adapter_config(context=(IPortalTemplateContainer, IAdminLayer, ITable), |
|
74 provides=ITableElementEditor) |
74 class PortalTemplateContainerTableElementEditor(DefaultElementEditorAdapter): |
75 class PortalTemplateContainerTableElementEditor(DefaultElementEditorAdapter): |
75 """Portal template container table element editor""" |
76 """Portal template container table element editor""" |
76 |
77 |
77 view_name = 'portal-templates.html' |
78 view_name = 'portal-templates.html' |
78 modal_target = False |
79 modal_target = False |
81 def url(self): |
82 def url(self): |
82 site = get_parent(self.context, ISite) |
83 site = get_parent(self.context, ISite) |
83 return resource_url(site, self.request, 'admin#{0}'.format(self.view_name)) |
84 return resource_url(site, self.request, 'admin#{0}'.format(self.view_name)) |
84 |
85 |
85 |
86 |
86 @viewlet_config(name='portal-templates.menu', context=ISite, layer=IAdminLayer, manager=IControlPanelMenu, |
87 @viewlet_config(name='portal-templates.menu', |
|
88 context=ISite, layer=IAdminLayer, manager=IControlPanelMenu, |
87 permission=MANAGE_TEMPLATE_PERMISSION, weight=20) |
89 permission=MANAGE_TEMPLATE_PERMISSION, weight=20) |
88 @viewletmanager_config(name='portal-templates.menu', context=ISite, layer=IAdminLayer) |
90 @viewletmanager_config(name='portal-templates.menu', context=ISite, layer=IAdminLayer) |
89 @implementer(IPortalTemplateContainerMenu) |
91 @implementer(IPortalTemplateContainerMenu) |
90 class PortalTemplateContainerMenuItem(MenuItem): |
92 class PortalTemplateContainerMenuItem(MenuItem): |
91 """Portal template container menu""" |
93 """Portal template container menu""" |
112 'data-ams-plugin-pyams_portal-css': get_resource_path(pyams_portal_css) |
114 'data-ams-plugin-pyams_portal-css': get_resource_path(pyams_portal_css) |
113 }) |
115 }) |
114 return attributes |
116 return attributes |
115 |
117 |
116 |
118 |
117 @adapter_config(context=(IPortalTemplate, IAdminLayer, PortalTemplateContainerTable), provides=ITableElementEditor) |
119 @adapter_config(context=(IPortalTemplate, IAdminLayer, PortalTemplateContainerTable), |
|
120 provides=ITableElementEditor) |
118 class PortalTemplateTableElementEditor(DefaultElementEditorAdapter): |
121 class PortalTemplateTableElementEditor(DefaultElementEditorAdapter): |
119 """Portal template table element editor""" |
122 """Portal template table element editor""" |
120 |
123 |
|
124 view_name = 'layout.html' |
121 modal_target = False |
125 modal_target = False |
122 |
126 |
123 @property |
127 @property |
124 def url(self): |
128 def url(self): |
125 return resource_url(self.context, self.request, 'admin#{0}'.format(self.view_name)) |
129 return resource_url(self.context, self.request, 'admin#{0}'.format(self.view_name)) |
126 |
130 |
127 |
131 |
128 @adapter_config(name='name', context=(Interface, IAdminLayer, PortalTemplateContainerTable), provides=IColumn) |
132 @adapter_config(name='name', context=(Interface, IAdminLayer, PortalTemplateContainerTable), |
|
133 provides=IColumn) |
129 class PortalTemplateContainerNameColumn(NameColumn): |
134 class PortalTemplateContainerNameColumn(NameColumn): |
130 """Portal template container name column""" |
135 """Portal template container name column""" |
131 |
136 |
132 attrName = 'name' |
137 attrName = 'name' |
133 |
138 |
134 |
139 |
135 @adapter_config(name='trash', context=(Interface, IAdminLayer, PortalTemplateContainerTable), provides=IColumn) |
140 @adapter_config(name='trash', context=(Interface, IAdminLayer, PortalTemplateContainerTable), |
|
141 provides=IColumn) |
136 class PortalTemplateContainerTrashColumn(TrashColumn): |
142 class PortalTemplateContainerTrashColumn(TrashColumn): |
137 """Portal template container trash column""" |
143 """Portal template container trash column""" |
138 |
144 |
139 icon_hint = _("Delete template") |
145 icon_hint = _("Delete template") |
140 permission = MANAGE_TEMPLATE_PERMISSION |
146 permission = MANAGE_TEMPLATE_PERMISSION |
141 |
147 |
142 |
148 |
143 @view_config(name='delete-element.json', context=IPortalTemplateContainer, request_type=IPyAMSLayer, |
149 @view_config(name='delete-element.json', |
|
150 context=IPortalTemplateContainer, request_type=IPyAMSLayer, |
144 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
151 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
145 def delete_portal_template(request): |
152 def delete_portal_template(request): |
146 """Delete selected template""" |
153 """Delete selected template""" |
147 return delete_container_element(request, ignore_permission=True) |
154 return delete_container_element(request, ignore_permission=True) |
148 |
155 |
149 |
156 |
150 @adapter_config(context=(ISite, IAdminLayer, PortalTemplateContainerTable), provides=IValues) |
157 @adapter_config(context=(ISite, IAdminLayer, PortalTemplateContainerTable), |
|
158 provides=IValues) |
151 class PortalTemplateContainerValuesAdapter(ContextRequestViewAdapter): |
159 class PortalTemplateContainerValuesAdapter(ContextRequestViewAdapter): |
152 """Portal template container values adapter""" |
160 """Portal template container values adapter""" |
153 |
161 |
154 @property |
162 @property |
155 def values(self): |
163 def values(self): |
157 if manager is not None: |
165 if manager is not None: |
158 return manager.values() |
166 return manager.values() |
159 return () |
167 return () |
160 |
168 |
161 |
169 |
162 @pagelet_config(name='portal-templates.html', context=ISite, layer=IPyAMSLayer, permission=MANAGE_TEMPLATE_PERMISSION) |
170 @pagelet_config(name='portal-templates.html', |
|
171 context=ISite, layer=IPyAMSLayer, permission=MANAGE_TEMPLATE_PERMISSION) |
163 @implementer(IInnerPage) |
172 @implementer(IInnerPage) |
164 class PortalTemplateContainerView(AdminView, ContainerView): |
173 class PortalTemplateContainerView(AdminView, ContainerView): |
165 """Portal template container view""" |
174 """Portal template container view""" |
166 |
175 |
167 table_class = PortalTemplateContainerTable |
176 table_class = PortalTemplateContainerTable |
168 |
177 |
169 def __init__(self, context, request): |
178 def __init__(self, context, request): |
170 super(PortalTemplateContainerView, self).__init__(context, request) |
179 super(PortalTemplateContainerView, self).__init__(context, request) |
171 |
180 |
172 |
181 |
173 @adapter_config(context=(ISite, IAdminLayer, PortalTemplateContainerView), provides=IPageHeader) |
182 @adapter_config(context=(ISite, IAdminLayer, PortalTemplateContainerView), |
|
183 provides=IPageHeader) |
174 class PortalTemplateContainerHeaderAdapter(DefaultPageHeaderAdapter): |
184 class PortalTemplateContainerHeaderAdapter(DefaultPageHeaderAdapter): |
175 """Portal template container header adapter""" |
185 """Portal template container header adapter""" |
176 |
186 |
177 icon_class = 'fa fa-fw fa-columns' |
187 icon_class = 'fa fa-fw fa-columns' |
178 |
188 |
179 |
189 |
180 # |
190 # |
181 # Templates container configuration views |
191 # Templates container configuration views |
182 # |
192 # |
183 |
193 |
184 @viewlet_config(name='templates-container-configuration.menu', context=ISite, layer=IAdminLayer, |
194 @viewlet_config(name='templates-container-configuration.menu', |
185 manager=IPortalTemplateContainerMenu, permission=MANAGE_TEMPLATE_PERMISSION, weight=1) |
195 context=ISite, layer=IAdminLayer, |
|
196 manager=IPortalTemplateContainerMenu, weight=1, |
|
197 permission=MANAGE_TEMPLATE_PERMISSION) |
186 class PortalTemplatesContainerPropertiesMenu(MenuItem): |
198 class PortalTemplatesContainerPropertiesMenu(MenuItem): |
187 """Portal template container configuration menu""" |
199 """Portal template container configuration menu""" |
188 |
200 |
189 label = _("Selected portlets...") |
201 label = _("Selected portlets...") |
190 icon_class = 'fa-thumb-tack' |
202 icon_class = 'fa-thumb-tack' |