--- a/src/pyams_portal/zmi/layout.py Fri Mar 26 16:32:52 2021 +0100
+++ b/src/pyams_portal/zmi/layout.py Thu Aug 05 09:27:48 2021 +0200
@@ -65,19 +65,23 @@
return _("Template management")
-@viewlet_config(name='template-properties.menu', context=IPortalTemplate, layer=IAdminLayer,
- manager=IContentManagementMenu, permission=MANAGE_TEMPLATE_PERMISSION, weight=1)
-@viewletmanager_config(name='template-properties.menu', layer=IAdminLayer, provides=IPropertiesMenu)
+@viewlet_config(name='template-layout.menu',
+ context=IPortalTemplate, layer=IAdminLayer,
+ manager=IContentManagementMenu, weight=1,
+ permission=MANAGE_TEMPLATE_PERMISSION)
+@viewletmanager_config(name='template-layout.menu',
+ layer=IAdminLayer,
+ provides=IPropertiesMenu)
@implementer(IPropertiesMenu)
class PortalTemplatePropertiesMenu(MenuItem):
"""Portal template properties menu"""
- label = _("Properties")
+ label = _("Layout")
icon_class = 'fa-edit'
- url = '#properties.html'
+ url = '#layout.html'
-@pagelet_config(name='properties.html', context=IPortalTemplate, layer=IPyAMSLayer,
+@pagelet_config(name='layout.html', context=IPortalTemplate, layer=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION)
@template_config(template='templates/layout.pt', layer=IAdminLayer)
@implementer(IInnerPage)
@@ -92,14 +96,11 @@
page = IPortalPage(context)
if page.use_local_template:
return _("Local template configuration")
- else:
- if page.template.name == LOCAL_TEMPLATE_NAME:
- return _("Inherited local template configuration")
- else:
- translate = self.request.localizer.translate
- return translate(_("Shared template configuration ({0})")).format(page.template.name)
- else:
- return _("Template configuration")
+ if page.template.name == LOCAL_TEMPLATE_NAME:
+ return _("Inherited local template configuration")
+ translate = self.request.localizer.translate
+ return translate(_("Shared template configuration ({0})")).format(page.template.name)
+ return _("Template configuration")
def get_template(self):
return self.context
@@ -141,18 +142,16 @@
portlet = self.get_portlet(name)
if portlet is not None:
return self.request.localizer.translate(portlet.label)
- else:
- return self.request.localizer.translate(_("{{ missing portlet }}"))
+ return self.request.localizer.translate(_("{{ missing portlet }}"))
def get_portlet_preview(self, portlet_id):
settings = self.portlet_configuration.get_portlet_configuration(portlet_id).settings
- previewer = self.request.registry.queryMultiAdapter((self.get_context(), self.request, self, settings),
- IPortletPreviewer)
+ previewer = self.request.registry.queryMultiAdapter(
+ (self.get_context(), self.request, self, settings), IPortletPreviewer)
if previewer is not None:
previewer.update()
return previewer.render()
- else:
- return ''
+ return ''
#
@@ -170,7 +169,8 @@
url = 'PyAMS_portal.template.addRow'
-@view_config(name='add-template-row.json', context=IPortalTemplate, request_type=IPyAMSLayer,
+@view_config(name='add-template-row.json',
+ context=IPortalTemplate, request_type=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
def add_template_row(request):
"""Add template raw"""
@@ -178,7 +178,8 @@
return {'row_id': config.add_row()}
-@view_config(name='set-template-row-order.json', context=IPortalTemplate, request_type=IPyAMSLayer,
+@view_config(name='set-template-row-order.json',
+ context=IPortalTemplate, request_type=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
def set_template_row_order(request):
"""Set template rows order"""
@@ -188,7 +189,8 @@
return {'status': 'success'}
-@view_config(name='delete-template-row.json', context=IPortalTemplate, request_type=IPyAMSLayer,
+@view_config(name='delete-template-row.json',
+ context=IPortalTemplate, request_type=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
def delete_template_row(request):
"""Delete template row"""
@@ -201,9 +203,10 @@
# Slots views
#
-@viewlet_config(name='add-template-slot.menu', context=IPortalTemplate, layer=IAdminLayer,
- view=PortalTemplateLayoutView, manager=IToolbarAddingMenu,
- permission=MANAGE_TEMPLATE_PERMISSION, weight=2)
+@viewlet_config(name='add-template-slot.menu',
+ context=IPortalTemplate, layer=IAdminLayer, view=PortalTemplateLayoutView,
+ manager=IToolbarAddingMenu, weight=2,
+ permission=MANAGE_TEMPLATE_PERMISSION)
class PortalTemplateSlotAddMenu(ToolbarMenuItem):
"""Portal template slot add menu"""
@@ -213,9 +216,11 @@
modal_target = True
-@pagelet_config(name='add-template-slot.html', context=IPortalTemplate, layer=IPyAMSLayer,
+@pagelet_config(name='add-template-slot.html',
+ context=IPortalTemplate, layer=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION)
-@ajax_config(name='add-template-slot.json', context=IPortalTemplate, layer=IPyAMSLayer,
+@ajax_config(name='add-template-slot.json',
+ context=IPortalTemplate, layer=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, base=AJAXAddForm)
class PortalTemplateSlotAddForm(AdminDialogAddForm):
"""Portal template slot add form"""
@@ -274,11 +279,12 @@
else:
if not 0 < row_id <= config.rows:
translate = event.form.request.localizer.translate
- event.form.widgets.errors += (Invalid(translate(_("Row ID must be between 1 and {0}!")).format(
- config.rows)),)
+ event.form.widgets.errors += (Invalid(translate(
+ _("Row ID must be between 1 and {0}!")).format(config.rows)),)
-@view_config(name='set-template-slot-order.json', context=IPortalTemplate, request_type=IPyAMSLayer,
+@view_config(name='set-template-slot-order.json',
+ context=IPortalTemplate, request_type=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
def set_template_slot_order(request):
"""Set template slots order"""
@@ -290,7 +296,8 @@
return {'status': 'success'}
-@view_config(name='get-slots-width.json', context=IPortalTemplate, request_type=IPyAMSLayer,
+@view_config(name='get-slots-width.json',
+ context=IPortalTemplate, request_type=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
def get_template_slots_width(request):
"""Get template slots width"""
@@ -298,7 +305,8 @@
return config.get_slots_width(request.params.get('device'))
-@view_config(name='set-slot-width.json', context=IPortalTemplate, request_type=IPyAMSLayer,
+@view_config(name='set-slot-width.json',
+ context=IPortalTemplate, request_type=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
def set_template_slot_width(request):
"""Set template slot width"""
@@ -309,9 +317,11 @@
return config.get_slots_width(request.params.get('device'))
-@pagelet_config(name='slot-properties.html', context=IPortalTemplate, layer=IPyAMSLayer,
+@pagelet_config(name='slot-properties.html',
+ context=IPortalTemplate, layer=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION)
-@ajax_config(name='slot-properties.json', context=IPortalTemplate, layer=IPyAMSLayer)
+@ajax_config(name='slot-properties.json',
+ context=IPortalTemplate, layer=IPyAMSLayer)
class PortalTemplateSlotPropertiesEditForm(AdminDialogEditForm):
"""Slot properties edit form"""
@@ -363,7 +373,8 @@
return super(self.__class__, self).get_ajax_output(changes)
-@view_config(name='delete-template-slot.json', context=IPortalTemplate, request_type=IPyAMSLayer,
+@view_config(name='delete-template-slot.json',
+ context=IPortalTemplate, request_type=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
def delete_template_slot(request):
"""Delete template slot"""
@@ -376,16 +387,18 @@
# Portlet views
#
-@viewlet_config(name='add-template-portlet.divider', context=IPortalTemplate, layer=IAdminLayer,
- view=PortalTemplateLayoutView, manager=IToolbarAddingMenu,
- permission=MANAGE_TEMPLATE_PERMISSION, weight=10)
+@viewlet_config(name='add-template-portlet.divider',
+ context=IPortalTemplate, layer=IAdminLayer, view=PortalTemplateLayoutView,
+ manager=IToolbarAddingMenu, weight=10,
+ permission=MANAGE_TEMPLATE_PERMISSION)
class PortalTemplateAddMenuDivider(ToolbarMenuDivider):
"""Portal template menu divider"""
-@viewlet_config(name='add-template-portlet.menu', context=IPortalTemplate, layer=IAdminLayer,
- view=PortalTemplateLayoutView, manager=IToolbarAddingMenu,
- permission=MANAGE_TEMPLATE_PERMISSION, weight=20)
+@viewlet_config(name='add-template-portlet.menu',
+ context=IPortalTemplate, layer=IAdminLayer, view=PortalTemplateLayoutView,
+ manager=IToolbarAddingMenu, weight=20,
+ permission=MANAGE_TEMPLATE_PERMISSION)
class PortalTemplatePortletAddMenu(ToolbarMenuItem):
"""Portal template portlet add menu"""
@@ -395,9 +408,11 @@
modal_target = True
-@pagelet_config(name='add-template-portlet.html', context=IPortalTemplate, layer=IPyAMSLayer,
+@pagelet_config(name='add-template-portlet.html',
+ context=IPortalTemplate, layer=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION)
-@ajax_config(name='add-template-portlet.json', context=IPortalTemplate, layer=IPyAMSLayer,
+@ajax_config(name='add-template-portlet.json',
+ context=IPortalTemplate, layer=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, base=AJAXAddForm)
class PortalTemplatePortletAddForm(AdminDialogAddForm):
"""Portal template portlet add form"""
@@ -421,8 +436,8 @@
def get_ajax_output(self, changes):
configuration = IPortalPortletsConfiguration(self.context)
settings = configuration.get_portlet_configuration(changes['portlet_id']).settings
- previewer = self.request.registry.queryMultiAdapter((self.context, self.request, self, settings),
- IPortletPreviewer)
+ previewer = self.request.registry.queryMultiAdapter(
+ (self.context, self.request, self, settings), IPortletPreviewer)
if previewer is not None:
previewer.update()
changes['preview'] = previewer.render()
@@ -433,7 +448,8 @@
}
-@view_config(name='drag-template-portlet.json', context=IPortalTemplate, request_type=IPyAMSLayer,
+@view_config(name='drag-template-portlet.json',
+ context=IPortalTemplate, request_type=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
def drag_template_portlet(request):
"""Drag portlet icon to slot"""
@@ -443,8 +459,8 @@
slot_name = request.params.get('slot_name')
changes = tmpl_config.add_portlet(portlet_name, slot_name)
settings = portlets_config.get_portlet_configuration(changes['portlet_id']).settings
- previewer = request.registry.queryMultiAdapter((request.context, request, request, settings),
- IPortletPreviewer)
+ previewer = request.registry.queryMultiAdapter(
+ (request.context, request, request, settings), IPortletPreviewer)
if previewer is not None:
previewer.update()
changes['preview'] = previewer.render()
@@ -456,7 +472,8 @@
}
-@view_config(name='set-template-portlet-order.json', context=IPortalTemplate, request_type=IPyAMSLayer,
+@view_config(name='set-template-portlet-order.json',
+ context=IPortalTemplate, request_type=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
def set_template_portlet_order(request):
"""Set template portlet order"""
@@ -480,11 +497,12 @@
request = self.request
request.registry.notify(PageletCreatedEvent(self))
portlet_id = int(request.params.get('{0}widgets.portlet_id'.format(self.prefix)))
- portlet_config = IPortalPortletsConfiguration(self.context).get_portlet_configuration(portlet_id)
+ portlet_config = IPortalPortletsConfiguration(self.context) \
+ .get_portlet_configuration(portlet_id)
if portlet_config is None:
raise NotFound()
- editor = self.request.registry.queryMultiAdapter((portlet_config.editor_settings, request),
- IPagelet, name='properties.html')
+ editor = self.request.registry.queryMultiAdapter(
+ (portlet_config.editor_settings, request), IPagelet, name='properties.html')
if editor is None:
raise NotFound()
request.registry.notify(PageletCreatedEvent(editor))
@@ -503,7 +521,8 @@
request.registry.notify(PageletCreatedEvent(self))
# load portlet config
portlet_id = int(request.params.get('{0}widgets.portlet_id'.format(self.prefix)))
- portlet_config = IPortalPortletsConfiguration(self.context).get_portlet_configuration(portlet_id)
+ portlet_config = IPortalPortletsConfiguration(self.context) \
+ .get_portlet_configuration(portlet_id)
if portlet_config is None:
raise NotFound()
# check inheritance
@@ -552,7 +571,8 @@
return changes
-@view_config(name='delete-template-portlet.json', context=IPortalTemplate, request_type=IPyAMSLayer,
+@view_config(name='delete-template-portlet.json',
+ context=IPortalTemplate, request_type=IPyAMSLayer,
permission=MANAGE_TEMPLATE_PERMISSION, renderer='json', xhr=True)
def delete_template_portlet(request):
"""Delete template portlet"""