--- 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',