63 @property |
63 @property |
64 def header(self): |
64 def header(self): |
65 return _("Template management") |
65 return _("Template management") |
66 |
66 |
67 |
67 |
68 @viewlet_config(name='template-properties.menu', context=IPortalTemplate, layer=IAdminLayer, |
68 @viewlet_config(name='template-layout.menu', |
69 manager=IContentManagementMenu, permission=MANAGE_TEMPLATE_PERMISSION, weight=1) |
69 context=IPortalTemplate, layer=IAdminLayer, |
70 @viewletmanager_config(name='template-properties.menu', layer=IAdminLayer, provides=IPropertiesMenu) |
70 manager=IContentManagementMenu, weight=1, |
|
71 permission=MANAGE_TEMPLATE_PERMISSION) |
|
72 @viewletmanager_config(name='template-layout.menu', |
|
73 layer=IAdminLayer, |
|
74 provides=IPropertiesMenu) |
71 @implementer(IPropertiesMenu) |
75 @implementer(IPropertiesMenu) |
72 class PortalTemplatePropertiesMenu(MenuItem): |
76 class PortalTemplatePropertiesMenu(MenuItem): |
73 """Portal template properties menu""" |
77 """Portal template properties menu""" |
74 |
78 |
75 label = _("Properties") |
79 label = _("Layout") |
76 icon_class = 'fa-edit' |
80 icon_class = 'fa-edit' |
77 url = '#properties.html' |
81 url = '#layout.html' |
78 |
82 |
79 |
83 |
80 @pagelet_config(name='properties.html', context=IPortalTemplate, layer=IPyAMSLayer, |
84 @pagelet_config(name='layout.html', context=IPortalTemplate, layer=IPyAMSLayer, |
81 permission=MANAGE_TEMPLATE_PERMISSION) |
85 permission=MANAGE_TEMPLATE_PERMISSION) |
82 @template_config(template='templates/layout.pt', layer=IAdminLayer) |
86 @template_config(template='templates/layout.pt', layer=IAdminLayer) |
83 @implementer(IInnerPage) |
87 @implementer(IInnerPage) |
84 class PortalTemplateLayoutView(AdminView): |
88 class PortalTemplateLayoutView(AdminView): |
85 """Portal template main layout configuration view""" |
89 """Portal template main layout configuration view""" |
90 if container is None: |
94 if container is None: |
91 context = get_parent(self.context, IPortalContext) |
95 context = get_parent(self.context, IPortalContext) |
92 page = IPortalPage(context) |
96 page = IPortalPage(context) |
93 if page.use_local_template: |
97 if page.use_local_template: |
94 return _("Local template configuration") |
98 return _("Local template configuration") |
95 else: |
99 if page.template.name == LOCAL_TEMPLATE_NAME: |
96 if page.template.name == LOCAL_TEMPLATE_NAME: |
100 return _("Inherited local template configuration") |
97 return _("Inherited local template configuration") |
101 translate = self.request.localizer.translate |
98 else: |
102 return translate(_("Shared template configuration ({0})")).format(page.template.name) |
99 translate = self.request.localizer.translate |
103 return _("Template configuration") |
100 return translate(_("Shared template configuration ({0})")).format(page.template.name) |
|
101 else: |
|
102 return _("Template configuration") |
|
103 |
104 |
104 def get_template(self): |
105 def get_template(self): |
105 return self.context |
106 return self.context |
106 |
107 |
107 def get_context(self): |
108 def get_context(self): |
139 |
140 |
140 def get_portlet_label(self, name): |
141 def get_portlet_label(self, name): |
141 portlet = self.get_portlet(name) |
142 portlet = self.get_portlet(name) |
142 if portlet is not None: |
143 if portlet is not None: |
143 return self.request.localizer.translate(portlet.label) |
144 return self.request.localizer.translate(portlet.label) |
144 else: |
145 return self.request.localizer.translate(_("{{ missing portlet }}")) |
145 return self.request.localizer.translate(_("{{ missing portlet }}")) |
|
146 |
146 |
147 def get_portlet_preview(self, portlet_id): |
147 def get_portlet_preview(self, portlet_id): |
148 settings = self.portlet_configuration.get_portlet_configuration(portlet_id).settings |
148 settings = self.portlet_configuration.get_portlet_configuration(portlet_id).settings |
149 previewer = self.request.registry.queryMultiAdapter((self.get_context(), self.request, self, settings), |
149 previewer = self.request.registry.queryMultiAdapter( |
150 IPortletPreviewer) |
150 (self.get_context(), self.request, self, settings), IPortletPreviewer) |
151 if previewer is not None: |
151 if previewer is not None: |
152 previewer.update() |
152 previewer.update() |
153 return previewer.render() |
153 return previewer.render() |
154 else: |
154 return '' |
155 return '' |
|
156 |
155 |
157 |
156 |
158 # |
157 # |
159 # Rows views |
158 # Rows views |
160 # |
159 # |
168 label = _("Add row...") |
167 label = _("Add row...") |
169 label_css_class = 'fa fa-fw fa-indent' |
168 label_css_class = 'fa fa-fw fa-indent' |
170 url = 'PyAMS_portal.template.addRow' |
169 url = 'PyAMS_portal.template.addRow' |
171 |
170 |
172 |
171 |
173 @view_config(name='add-template-row.json', context=IPortalTemplate, request_type=IPyAMSLayer, |
172 @view_config(name='add-template-row.json', |
|
173 context=IPortalTemplate, request_type=IPyAMSLayer, |
174 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
174 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
175 def add_template_row(request): |
175 def add_template_row(request): |
176 """Add template raw""" |
176 """Add template raw""" |
177 config = IPortalTemplateConfiguration(request.context) |
177 config = IPortalTemplateConfiguration(request.context) |
178 return {'row_id': config.add_row()} |
178 return {'row_id': config.add_row()} |
179 |
179 |
180 |
180 |
181 @view_config(name='set-template-row-order.json', context=IPortalTemplate, request_type=IPyAMSLayer, |
181 @view_config(name='set-template-row-order.json', |
|
182 context=IPortalTemplate, request_type=IPyAMSLayer, |
182 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
183 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
183 def set_template_row_order(request): |
184 def set_template_row_order(request): |
184 """Set template rows order""" |
185 """Set template rows order""" |
185 config = IPortalTemplateConfiguration(request.context) |
186 config = IPortalTemplateConfiguration(request.context) |
186 row_ids = map(int, json.loads(request.params.get('rows'))) |
187 row_ids = map(int, json.loads(request.params.get('rows'))) |
187 config.set_row_order(row_ids) |
188 config.set_row_order(row_ids) |
188 return {'status': 'success'} |
189 return {'status': 'success'} |
189 |
190 |
190 |
191 |
191 @view_config(name='delete-template-row.json', context=IPortalTemplate, request_type=IPyAMSLayer, |
192 @view_config(name='delete-template-row.json', |
|
193 context=IPortalTemplate, request_type=IPyAMSLayer, |
192 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
194 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
193 def delete_template_row(request): |
195 def delete_template_row(request): |
194 """Delete template row""" |
196 """Delete template row""" |
195 config = IPortalTemplateConfiguration(request.context) |
197 config = IPortalTemplateConfiguration(request.context) |
196 config.delete_row(int(request.params.get('row_id'))) |
198 config.delete_row(int(request.params.get('row_id'))) |
199 |
201 |
200 # |
202 # |
201 # Slots views |
203 # Slots views |
202 # |
204 # |
203 |
205 |
204 @viewlet_config(name='add-template-slot.menu', context=IPortalTemplate, layer=IAdminLayer, |
206 @viewlet_config(name='add-template-slot.menu', |
205 view=PortalTemplateLayoutView, manager=IToolbarAddingMenu, |
207 context=IPortalTemplate, layer=IAdminLayer, view=PortalTemplateLayoutView, |
206 permission=MANAGE_TEMPLATE_PERMISSION, weight=2) |
208 manager=IToolbarAddingMenu, weight=2, |
|
209 permission=MANAGE_TEMPLATE_PERMISSION) |
207 class PortalTemplateSlotAddMenu(ToolbarMenuItem): |
210 class PortalTemplateSlotAddMenu(ToolbarMenuItem): |
208 """Portal template slot add menu""" |
211 """Portal template slot add menu""" |
209 |
212 |
210 label = _("Add slot...") |
213 label = _("Add slot...") |
211 label_css_class = 'fa fa-fw fa-columns' |
214 label_css_class = 'fa fa-fw fa-columns' |
212 url = 'add-template-slot.html' |
215 url = 'add-template-slot.html' |
213 modal_target = True |
216 modal_target = True |
214 |
217 |
215 |
218 |
216 @pagelet_config(name='add-template-slot.html', context=IPortalTemplate, layer=IPyAMSLayer, |
219 @pagelet_config(name='add-template-slot.html', |
217 permission=MANAGE_TEMPLATE_PERMISSION) |
220 context=IPortalTemplate, layer=IPyAMSLayer, |
218 @ajax_config(name='add-template-slot.json', context=IPortalTemplate, layer=IPyAMSLayer, |
221 permission=MANAGE_TEMPLATE_PERMISSION) |
|
222 @ajax_config(name='add-template-slot.json', |
|
223 context=IPortalTemplate, layer=IPyAMSLayer, |
219 permission=MANAGE_TEMPLATE_PERMISSION, base=AJAXAddForm) |
224 permission=MANAGE_TEMPLATE_PERMISSION, base=AJAXAddForm) |
220 class PortalTemplateSlotAddForm(AdminDialogAddForm): |
225 class PortalTemplateSlotAddForm(AdminDialogAddForm): |
221 """Portal template slot add form""" |
226 """Portal template slot add form""" |
222 |
227 |
223 @property |
228 @property |
272 except ValueError: |
277 except ValueError: |
273 event.form.widgets.errors += (Invalid(_("Row ID must be an integer value!")),) |
278 event.form.widgets.errors += (Invalid(_("Row ID must be an integer value!")),) |
274 else: |
279 else: |
275 if not 0 < row_id <= config.rows: |
280 if not 0 < row_id <= config.rows: |
276 translate = event.form.request.localizer.translate |
281 translate = event.form.request.localizer.translate |
277 event.form.widgets.errors += (Invalid(translate(_("Row ID must be between 1 and {0}!")).format( |
282 event.form.widgets.errors += (Invalid(translate( |
278 config.rows)),) |
283 _("Row ID must be between 1 and {0}!")).format(config.rows)),) |
279 |
284 |
280 |
285 |
281 @view_config(name='set-template-slot-order.json', context=IPortalTemplate, request_type=IPyAMSLayer, |
286 @view_config(name='set-template-slot-order.json', |
|
287 context=IPortalTemplate, request_type=IPyAMSLayer, |
282 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
288 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
283 def set_template_slot_order(request): |
289 def set_template_slot_order(request): |
284 """Set template slots order""" |
290 """Set template slots order""" |
285 config = IPortalTemplateConfiguration(request.context) |
291 config = IPortalTemplateConfiguration(request.context) |
286 order = json.loads(request.params.get('order')) |
292 order = json.loads(request.params.get('order')) |
288 order[int(key)] = order.pop(key) |
294 order[int(key)] = order.pop(key) |
289 config.set_slot_order(order) |
295 config.set_slot_order(order) |
290 return {'status': 'success'} |
296 return {'status': 'success'} |
291 |
297 |
292 |
298 |
293 @view_config(name='get-slots-width.json', context=IPortalTemplate, request_type=IPyAMSLayer, |
299 @view_config(name='get-slots-width.json', |
|
300 context=IPortalTemplate, request_type=IPyAMSLayer, |
294 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
301 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
295 def get_template_slots_width(request): |
302 def get_template_slots_width(request): |
296 """Get template slots width""" |
303 """Get template slots width""" |
297 config = IPortalTemplateConfiguration(request.context) |
304 config = IPortalTemplateConfiguration(request.context) |
298 return config.get_slots_width(request.params.get('device')) |
305 return config.get_slots_width(request.params.get('device')) |
299 |
306 |
300 |
307 |
301 @view_config(name='set-slot-width.json', context=IPortalTemplate, request_type=IPyAMSLayer, |
308 @view_config(name='set-slot-width.json', |
|
309 context=IPortalTemplate, request_type=IPyAMSLayer, |
302 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
310 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
303 def set_template_slot_width(request): |
311 def set_template_slot_width(request): |
304 """Set template slot width""" |
312 """Set template slot width""" |
305 config = IPortalTemplateConfiguration(request.context) |
313 config = IPortalTemplateConfiguration(request.context) |
306 config.set_slot_width(request.params.get('slot_name'), |
314 config.set_slot_width(request.params.get('slot_name'), |
307 request.params.get('device'), |
315 request.params.get('device'), |
308 int(request.params.get('width'))) |
316 int(request.params.get('width'))) |
309 return config.get_slots_width(request.params.get('device')) |
317 return config.get_slots_width(request.params.get('device')) |
310 |
318 |
311 |
319 |
312 @pagelet_config(name='slot-properties.html', context=IPortalTemplate, layer=IPyAMSLayer, |
320 @pagelet_config(name='slot-properties.html', |
313 permission=MANAGE_TEMPLATE_PERMISSION) |
321 context=IPortalTemplate, layer=IPyAMSLayer, |
314 @ajax_config(name='slot-properties.json', context=IPortalTemplate, layer=IPyAMSLayer) |
322 permission=MANAGE_TEMPLATE_PERMISSION) |
|
323 @ajax_config(name='slot-properties.json', |
|
324 context=IPortalTemplate, layer=IPyAMSLayer) |
315 class PortalTemplateSlotPropertiesEditForm(AdminDialogEditForm): |
325 class PortalTemplateSlotPropertiesEditForm(AdminDialogEditForm): |
316 """Slot properties edit form""" |
326 """Slot properties edit form""" |
317 |
327 |
318 prefix = 'slot.' |
328 prefix = 'slot.' |
319 |
329 |
361 } |
371 } |
362 else: |
372 else: |
363 return super(self.__class__, self).get_ajax_output(changes) |
373 return super(self.__class__, self).get_ajax_output(changes) |
364 |
374 |
365 |
375 |
366 @view_config(name='delete-template-slot.json', context=IPortalTemplate, request_type=IPyAMSLayer, |
376 @view_config(name='delete-template-slot.json', |
|
377 context=IPortalTemplate, request_type=IPyAMSLayer, |
367 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
378 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
368 def delete_template_slot(request): |
379 def delete_template_slot(request): |
369 """Delete template slot""" |
380 """Delete template slot""" |
370 config = IPortalTemplateConfiguration(request.context) |
381 config = IPortalTemplateConfiguration(request.context) |
371 config.delete_slot(request.params.get('slot_name')) |
382 config.delete_slot(request.params.get('slot_name')) |
374 |
385 |
375 # |
386 # |
376 # Portlet views |
387 # Portlet views |
377 # |
388 # |
378 |
389 |
379 @viewlet_config(name='add-template-portlet.divider', context=IPortalTemplate, layer=IAdminLayer, |
390 @viewlet_config(name='add-template-portlet.divider', |
380 view=PortalTemplateLayoutView, manager=IToolbarAddingMenu, |
391 context=IPortalTemplate, layer=IAdminLayer, view=PortalTemplateLayoutView, |
381 permission=MANAGE_TEMPLATE_PERMISSION, weight=10) |
392 manager=IToolbarAddingMenu, weight=10, |
|
393 permission=MANAGE_TEMPLATE_PERMISSION) |
382 class PortalTemplateAddMenuDivider(ToolbarMenuDivider): |
394 class PortalTemplateAddMenuDivider(ToolbarMenuDivider): |
383 """Portal template menu divider""" |
395 """Portal template menu divider""" |
384 |
396 |
385 |
397 |
386 @viewlet_config(name='add-template-portlet.menu', context=IPortalTemplate, layer=IAdminLayer, |
398 @viewlet_config(name='add-template-portlet.menu', |
387 view=PortalTemplateLayoutView, manager=IToolbarAddingMenu, |
399 context=IPortalTemplate, layer=IAdminLayer, view=PortalTemplateLayoutView, |
388 permission=MANAGE_TEMPLATE_PERMISSION, weight=20) |
400 manager=IToolbarAddingMenu, weight=20, |
|
401 permission=MANAGE_TEMPLATE_PERMISSION) |
389 class PortalTemplatePortletAddMenu(ToolbarMenuItem): |
402 class PortalTemplatePortletAddMenu(ToolbarMenuItem): |
390 """Portal template portlet add menu""" |
403 """Portal template portlet add menu""" |
391 |
404 |
392 label = _("Add portlet...") |
405 label = _("Add portlet...") |
393 label_css_class = 'fa fa-fw fa-window-restore' |
406 label_css_class = 'fa fa-fw fa-window-restore' |
394 url = 'add-template-portlet.html' |
407 url = 'add-template-portlet.html' |
395 modal_target = True |
408 modal_target = True |
396 |
409 |
397 |
410 |
398 @pagelet_config(name='add-template-portlet.html', context=IPortalTemplate, layer=IPyAMSLayer, |
411 @pagelet_config(name='add-template-portlet.html', |
399 permission=MANAGE_TEMPLATE_PERMISSION) |
412 context=IPortalTemplate, layer=IPyAMSLayer, |
400 @ajax_config(name='add-template-portlet.json', context=IPortalTemplate, layer=IPyAMSLayer, |
413 permission=MANAGE_TEMPLATE_PERMISSION) |
|
414 @ajax_config(name='add-template-portlet.json', |
|
415 context=IPortalTemplate, layer=IPyAMSLayer, |
401 permission=MANAGE_TEMPLATE_PERMISSION, base=AJAXAddForm) |
416 permission=MANAGE_TEMPLATE_PERMISSION, base=AJAXAddForm) |
402 class PortalTemplatePortletAddForm(AdminDialogAddForm): |
417 class PortalTemplatePortletAddForm(AdminDialogAddForm): |
403 """Portal template portlet add form""" |
418 """Portal template portlet add form""" |
404 |
419 |
405 @property |
420 @property |
419 return config.add_portlet(data.get('portlet_name'), data.get('slot_name')) |
434 return config.add_portlet(data.get('portlet_name'), data.get('slot_name')) |
420 |
435 |
421 def get_ajax_output(self, changes): |
436 def get_ajax_output(self, changes): |
422 configuration = IPortalPortletsConfiguration(self.context) |
437 configuration = IPortalPortletsConfiguration(self.context) |
423 settings = configuration.get_portlet_configuration(changes['portlet_id']).settings |
438 settings = configuration.get_portlet_configuration(changes['portlet_id']).settings |
424 previewer = self.request.registry.queryMultiAdapter((self.context, self.request, self, settings), |
439 previewer = self.request.registry.queryMultiAdapter( |
425 IPortletPreviewer) |
440 (self.context, self.request, self, settings), IPortletPreviewer) |
426 if previewer is not None: |
441 if previewer is not None: |
427 previewer.update() |
442 previewer.update() |
428 changes['preview'] = previewer.render() |
443 changes['preview'] = previewer.render() |
429 return { |
444 return { |
430 'status': 'callback', |
445 'status': 'callback', |
431 'callback': 'PyAMS_portal.template.addPortletCallback', |
446 'callback': 'PyAMS_portal.template.addPortletCallback', |
432 'options': changes |
447 'options': changes |
433 } |
448 } |
434 |
449 |
435 |
450 |
436 @view_config(name='drag-template-portlet.json', context=IPortalTemplate, request_type=IPyAMSLayer, |
451 @view_config(name='drag-template-portlet.json', |
|
452 context=IPortalTemplate, request_type=IPyAMSLayer, |
437 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
453 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
438 def drag_template_portlet(request): |
454 def drag_template_portlet(request): |
439 """Drag portlet icon to slot""" |
455 """Drag portlet icon to slot""" |
440 tmpl_config = IPortalTemplateConfiguration(request.context) |
456 tmpl_config = IPortalTemplateConfiguration(request.context) |
441 portlets_config = IPortalPortletsConfiguration(request.context) |
457 portlets_config = IPortalPortletsConfiguration(request.context) |
442 portlet_name = request.params.get('portlet_name') |
458 portlet_name = request.params.get('portlet_name') |
443 slot_name = request.params.get('slot_name') |
459 slot_name = request.params.get('slot_name') |
444 changes = tmpl_config.add_portlet(portlet_name, slot_name) |
460 changes = tmpl_config.add_portlet(portlet_name, slot_name) |
445 settings = portlets_config.get_portlet_configuration(changes['portlet_id']).settings |
461 settings = portlets_config.get_portlet_configuration(changes['portlet_id']).settings |
446 previewer = request.registry.queryMultiAdapter((request.context, request, request, settings), |
462 previewer = request.registry.queryMultiAdapter( |
447 IPortletPreviewer) |
463 (request.context, request, request, settings), IPortletPreviewer) |
448 if previewer is not None: |
464 if previewer is not None: |
449 previewer.update() |
465 previewer.update() |
450 changes['preview'] = previewer.render() |
466 changes['preview'] = previewer.render() |
451 return { |
467 return { |
452 'status': 'callback', |
468 'status': 'callback', |
454 'callback': 'PyAMS_portal.template.addPortletCallback', |
470 'callback': 'PyAMS_portal.template.addPortletCallback', |
455 'options': changes |
471 'options': changes |
456 } |
472 } |
457 |
473 |
458 |
474 |
459 @view_config(name='set-template-portlet-order.json', context=IPortalTemplate, request_type=IPyAMSLayer, |
475 @view_config(name='set-template-portlet-order.json', |
|
476 context=IPortalTemplate, request_type=IPyAMSLayer, |
460 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
477 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
461 def set_template_portlet_order(request): |
478 def set_template_portlet_order(request): |
462 """Set template portlet order""" |
479 """Set template portlet order""" |
463 order = json.loads(request.params.get('order')) |
480 order = json.loads(request.params.get('order')) |
464 order['from'] = int(order['from']) |
481 order['from'] = int(order['from']) |
478 |
495 |
479 def __call__(self): |
496 def __call__(self): |
480 request = self.request |
497 request = self.request |
481 request.registry.notify(PageletCreatedEvent(self)) |
498 request.registry.notify(PageletCreatedEvent(self)) |
482 portlet_id = int(request.params.get('{0}widgets.portlet_id'.format(self.prefix))) |
499 portlet_id = int(request.params.get('{0}widgets.portlet_id'.format(self.prefix))) |
483 portlet_config = IPortalPortletsConfiguration(self.context).get_portlet_configuration(portlet_id) |
500 portlet_config = IPortalPortletsConfiguration(self.context) \ |
|
501 .get_portlet_configuration(portlet_id) |
484 if portlet_config is None: |
502 if portlet_config is None: |
485 raise NotFound() |
503 raise NotFound() |
486 editor = self.request.registry.queryMultiAdapter((portlet_config.editor_settings, request), |
504 editor = self.request.registry.queryMultiAdapter( |
487 IPagelet, name='properties.html') |
505 (portlet_config.editor_settings, request), IPagelet, name='properties.html') |
488 if editor is None: |
506 if editor is None: |
489 raise NotFound() |
507 raise NotFound() |
490 request.registry.notify(PageletCreatedEvent(editor)) |
508 request.registry.notify(PageletCreatedEvent(editor)) |
491 editor.ajax_handler = 'portlet-properties.json' |
509 editor.ajax_handler = 'portlet-properties.json' |
492 editor.update() |
510 editor.update() |
501 def __call__(self): |
519 def __call__(self): |
502 request = self.request |
520 request = self.request |
503 request.registry.notify(PageletCreatedEvent(self)) |
521 request.registry.notify(PageletCreatedEvent(self)) |
504 # load portlet config |
522 # load portlet config |
505 portlet_id = int(request.params.get('{0}widgets.portlet_id'.format(self.prefix))) |
523 portlet_id = int(request.params.get('{0}widgets.portlet_id'.format(self.prefix))) |
506 portlet_config = IPortalPortletsConfiguration(self.context).get_portlet_configuration(portlet_id) |
524 portlet_config = IPortalPortletsConfiguration(self.context) \ |
|
525 .get_portlet_configuration(portlet_id) |
507 if portlet_config is None: |
526 if portlet_config is None: |
508 raise NotFound() |
527 raise NotFound() |
509 # check inheritance |
528 # check inheritance |
510 old_override = portlet_config.inherit_parent |
529 old_override = portlet_config.inherit_parent |
511 new_override = request.params.get('{0}widgets.override_parent'.format(self.prefix)) |
530 new_override = request.params.get('{0}widgets.override_parent'.format(self.prefix)) |
550 if 'autosubmit' in request.params: |
569 if 'autosubmit' in request.params: |
551 changes['close_form'] = False |
570 changes['close_form'] = False |
552 return changes |
571 return changes |
553 |
572 |
554 |
573 |
555 @view_config(name='delete-template-portlet.json', context=IPortalTemplate, request_type=IPyAMSLayer, |
574 @view_config(name='delete-template-portlet.json', |
|
575 context=IPortalTemplate, request_type=IPyAMSLayer, |
556 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
576 permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True) |
557 def delete_template_portlet(request): |
577 def delete_template_portlet(request): |
558 """Delete template portlet""" |
578 """Delete template portlet""" |
559 config = IPortalTemplateConfiguration(request.context) |
579 config = IPortalTemplateConfiguration(request.context) |
560 config.delete_portlet(int(request.params.get('portlet_id'))) |
580 config.delete_portlet(int(request.params.get('portlet_id'))) |