src/pyams_portal/zmi/layout.py
changeset 289 fca4100c1733
parent 279 c025abc00397
child 290 3977d9c8618d
--- 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"""