src/pyams_content/shared/common/zmi/dashboard.py
changeset 956 a8723fffbaf6
parent 896 93b8fc176f8e
child 966 a3d8d83fb6f0
--- a/src/pyams_content/shared/common/zmi/dashboard.py	Wed Sep 19 10:49:26 2018 +0200
+++ b/src/pyams_content/shared/common/zmi/dashboard.py	Wed Sep 19 10:54:08 2018 +0200
@@ -12,39 +12,32 @@
 
 __docformat__ = 'restructuredtext'
 
-
-# import standard library
+from hypatia.catalog import CatalogQuery
+from hypatia.interfaces import ICatalog
+from hypatia.query import And, Or, Eq, Any
+from z3c.table.column import GetAttrColumn
+from z3c.table.interfaces import IValues, IColumn
+from zope.dublincore.interfaces import IZopeDublinCore
+from zope.interface import implementer, Interface
+from zope.intid.interfaces import IIntIds
 
-# import interfaces
-from hypatia.interfaces import ICatalog
+from pyams_catalog.query import CatalogResultSet
 from pyams_content.interfaces import MANAGE_SITE_ROOT_PERMISSION, PUBLISH_CONTENT_PERMISSION
 from pyams_content.profile.interfaces import IAdminProfile
+from pyams_content.shared.common import CONTENT_TYPES
 from pyams_content.shared.common.interfaces import IBaseSharedTool, IWfSharedContent, IManagerRestrictions
 from pyams_content.shared.common.interfaces.zmi import IDashboardTable, ISharedToolDashboardTable, \
     IDashboardSearchHeader
+from pyams_content.skin import pyams_content
 from pyams_content.skin.zmi.interfaces import IDashboardMenu, IMyDashboardMenu, IAllContentsMenu
 from pyams_i18n.interfaces import II18n
+from pyams_pagelet.pagelet import pagelet_config
 from pyams_security.interfaces import ISecurityManager
 from pyams_sequence.interfaces import ISequentialIdInfo, ISequentialIdTarget, ISequentialIntIds
+from pyams_skin.container import ContainerView
 from pyams_skin.interfaces import IPageHeader
 from pyams_skin.interfaces.container import ITableElementName
 from pyams_skin.layer import IPyAMSLayer
-from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
-from pyams_workflow.interfaces import IWorkflowState, IWorkflow, IWorkflowVersions, IWorkflowPublicationInfo
-from pyams_zmi.interfaces.menu import IContentManagementMenu
-from pyams_zmi.layer import IAdminLayer
-from z3c.table.interfaces import IValues, IColumn
-from zope.dublincore.interfaces import IZopeDublinCore
-from zope.intid.interfaces import IIntIds
-
-# import packages
-from hypatia.catalog import CatalogQuery
-from hypatia.query import And, Or, Eq, Any
-from pyams_catalog.query import CatalogResultSet
-from pyams_content.shared.common import CONTENT_TYPES
-from pyams_content.skin import pyams_content
-from pyams_pagelet.pagelet import pagelet_config
-from pyams_skin.container import ContainerView
 from pyams_skin.page import DefaultPageHeaderAdapter
 from pyams_skin.table import BaseTable, I18nColumn, NameColumn, JsActionColumn
 from pyams_skin.viewlet.menu import MenuItem
@@ -52,6 +45,7 @@
 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter
 from pyams_utils.date import format_datetime, SH_DATETIME_FORMAT
 from pyams_utils.fanstatic import get_resource_path
+from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
 from pyams_utils.list import unique_iter
 from pyams_utils.property import cached_property
 from pyams_utils.registry import get_utility
@@ -59,9 +53,10 @@
 from pyams_utils.traversing import get_parent
 from pyams_viewlet.manager import viewletmanager_config
 from pyams_viewlet.viewlet import viewlet_config
+from pyams_workflow.interfaces import IWorkflowState, IWorkflow, IWorkflowVersions, IWorkflowPublicationInfo
+from pyams_zmi.interfaces.menu import IContentManagementMenu
+from pyams_zmi.layer import IAdminLayer
 from pyams_zmi.view import InnerAdminView
-from z3c.table.column import GetAttrColumn
-from zope.interface import implementer, Interface
 
 from pyams_content import _
 
@@ -340,8 +335,8 @@
         catalog = get_utility(ICatalog)
         workflow = get_utility(IWorkflow, name=self.context.shared_content_workflow)
         params = Eq(catalog['parents'], intids.register(self.context)) & \
-                 Any(catalog['content_type'], CONTENT_TYPES.keys()) & \
-                 Any(catalog['workflow_state'], workflow.waiting_states)
+            Any(catalog['content_type'], CONTENT_TYPES.keys()) & \
+            Any(catalog['workflow_state'], workflow.waiting_states)
         yield from filter(self.check_access,
                           unique_iter(map(lambda x: sorted(IWorkflowVersions(x).get_versions(IWorkflowState(x).state),
                                                            key=lambda y: IZopeDublinCore(y).modified, reverse=True)[0],
@@ -384,9 +379,9 @@
         catalog = get_utility(ICatalog)
         workflow = get_utility(IWorkflow, name=self.context.shared_content_workflow)
         params = Eq(catalog['parents'], intids.register(self.context)) & \
-                 Any(catalog['content_type'], CONTENT_TYPES.keys()) & \
-                 Any(catalog['workflow_state'], workflow.waiting_states) & \
-                 Eq(catalog['workflow_principal'], self.request.principal.id)
+            Any(catalog['content_type'], CONTENT_TYPES.keys()) & \
+            Any(catalog['workflow_state'], workflow.waiting_states) & \
+            Eq(catalog['workflow_principal'], self.request.principal.id)
         yield from unique_iter(map(lambda x: sorted(IWorkflowVersions(x).get_versions(IWorkflowState(x).state),
                                                     key=lambda y: IZopeDublinCore(y).modified, reverse=True)[0],
                                    CatalogResultSet(CatalogQuery(catalog).query(params,
@@ -445,8 +440,8 @@
     label = _("My contents")
     icon_class = 'fa-user'
     url = '#'
-    
-    
+
+
 #
 # My favorites
 # Dashboard of favorites contents
@@ -493,14 +488,14 @@
         oid = ISequentialIdInfo(item).hex_oid
         icon_class = 'fa fa-fw fa-star{0}'.format('' if oid in (self.profile.favorites or ()) else '-o')
         return '<i data-ams-plugins="pyams_content" ' \
-            'data-ams-plugin-pyams_content-src="{path}" ' \
-            'data-ams-click-handler="PyAMS_content.profile.switchFavorite" data-ams-stop-propagation="true" ' \
-            'data-sequence-oid="{oid}" ' \
-            'class="{icon_class}"></i>'.format(
-                path=get_resource_path(pyams_content),
-                oid=oid,
-                title=self.request.localizer.translate(self.icon_hint),
-                icon_class=icon_class)
+               'data-ams-plugin-pyams_content-src="{path}" ' \
+               'data-ams-click-handler="PyAMS_content.profile.switchFavorite" data-ams-stop-propagation="true" ' \
+               'data-sequence-oid="{oid}" ' \
+               'class="{icon_class}"></i>'.format(
+            path=get_resource_path(pyams_content),
+            oid=oid,
+            title=self.request.localizer.translate(self.icon_hint),
+            icon_class=icon_class)
 
     def get_url(self, item):
         return ''
@@ -578,7 +573,7 @@
         catalog = get_utility(ICatalog)
         workflow = get_utility(IWorkflow, name=self.context.shared_content_workflow)
         params = And(Eq(catalog['parents'], intids.register(self.context)),
-                     Any(catalog['content_type'], CONTENT_TYPES.keys()) & \
+                     Any(catalog['content_type'], CONTENT_TYPES.keys()) &
                      Or(Eq(catalog['role:owner'], self.request.principal.id),
                         Eq(catalog['role:contributor'], self.request.principal.id)),
                      Eq(catalog['workflow_state'], workflow.initial_state))
@@ -587,7 +582,8 @@
                                                                             reverse=True)))
 
 
-@pagelet_config(name='my-preparations.html', context=IBaseSharedTool, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
+@pagelet_config(name='my-preparations.html', context=IBaseSharedTool, layer=IPyAMSLayer,
+                permission=VIEW_SYSTEM_PERMISSION)
 class SharedToolPreparationsView(InnerAdminView, ContainerView):
     """Shared tool preparations view"""
 
@@ -641,7 +637,7 @@
         catalog = get_utility(ICatalog)
         workflow = get_utility(IWorkflow, name=self.context.shared_content_workflow)
         params = And(Eq(catalog['parents'], intids.register(self.context)),
-                     Any(catalog['content_type'], CONTENT_TYPES.keys()) & \
+                     Any(catalog['content_type'], CONTENT_TYPES.keys()) &
                      Or(Eq(catalog['role:owner'], self.request.principal.id),
                         Eq(catalog['role:contributor'], self.request.principal.id)),
                      Any(catalog['workflow_state'], workflow.waiting_states))
@@ -650,7 +646,8 @@
                                                                             reverse=True)))
 
 
-@pagelet_config(name='my-submissions.html', context=IBaseSharedTool, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
+@pagelet_config(name='my-submissions.html', context=IBaseSharedTool, layer=IPyAMSLayer,
+                permission=VIEW_SYSTEM_PERMISSION)
 class SharedToolSubmissionsView(InnerAdminView, ContainerView):
     """Shared tool submissions view"""
 
@@ -704,7 +701,7 @@
         catalog = get_utility(ICatalog)
         workflow = get_utility(IWorkflow, name=self.context.shared_content_workflow)
         params = And(Eq(catalog['parents'], intids.register(self.context)),
-                     Any(catalog['content_type'], CONTENT_TYPES.keys()) & \
+                     Any(catalog['content_type'], CONTENT_TYPES.keys()) &
                      Or(Eq(catalog['role:owner'], self.request.principal.id),
                         Eq(catalog['role:contributor'], self.request.principal.id)),
                      Any(catalog['workflow_state'], workflow.published_states))
@@ -713,7 +710,8 @@
                                                                             reverse=True)))
 
 
-@pagelet_config(name='my-publications.html', context=IBaseSharedTool, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
+@pagelet_config(name='my-publications.html', context=IBaseSharedTool, layer=IPyAMSLayer,
+                permission=VIEW_SYSTEM_PERMISSION)
 class SharedToolPublicationsView(InnerAdminView, ContainerView):
     """Shared tool publications view"""
 
@@ -767,7 +765,7 @@
         catalog = get_utility(ICatalog)
         workflow = get_utility(IWorkflow, name=self.context.shared_content_workflow)
         params = And(Eq(catalog['parents'], intids.register(self.context)),
-                     Any(catalog['content_type'], CONTENT_TYPES.keys()) & \
+                     Any(catalog['content_type'], CONTENT_TYPES.keys()) &
                      Or(Eq(catalog['role:owner'], self.request.principal.id),
                         Eq(catalog['role:contributor'], self.request.principal.id)),
                      Any(catalog['workflow_state'], workflow.retired_states))
@@ -832,7 +830,7 @@
         principal_id = self.request.principal.id
         workflow = get_utility(IWorkflow, name=self.context.shared_content_workflow)
         params = And(Eq(catalog['parents'], intids.register(self.context)),
-                     Any(catalog['content_type'], CONTENT_TYPES.keys()) & \
+                     Any(catalog['content_type'], CONTENT_TYPES.keys()) &
                      Or(Eq(catalog['role:owner'], principal_id),
                         Eq(catalog['role:contributor'], principal_id)),
                      Any(catalog['workflow_state'], workflow.archived_states))
@@ -923,7 +921,7 @@
         catalog = get_utility(ICatalog)
         workflow = get_utility(IWorkflow, name=self.context.shared_content_workflow)
         params = And(Eq(catalog['parents'], intids.register(self.context)),
-                     Any(catalog['content_type'], CONTENT_TYPES.keys()) & \
+                     Any(catalog['content_type'], CONTENT_TYPES.keys()) &
                      Any(catalog['workflow_state'], workflow.published_states))
         yield from unique_iter(CatalogResultSet(CatalogQuery(catalog).query(params,
                                                                             limit=50,
@@ -991,7 +989,7 @@
         intids = get_utility(IIntIds)
         catalog = get_utility(ICatalog)
         params = Eq(catalog['parents'], intids.register(self.context)) & \
-                 Any(catalog['content_type'], CONTENT_TYPES.keys())
+            Any(catalog['content_type'], CONTENT_TYPES.keys())
         yield from unique_iter(CatalogResultSet(CatalogQuery(catalog).query(params,
                                                                             limit=50,
                                                                             sort_index='modified_date',