--- a/src/pyams_content/root/zmi/__init__.py Fri Nov 10 12:07:43 2017 +0100
+++ b/src/pyams_content/root/zmi/__init__.py Tue Nov 14 14:05:30 2017 +0100
@@ -20,7 +20,7 @@
from pyams_content.interfaces import PUBLISH_CONTENT_PERMISSION, MANAGE_SITE_ROOT_PERMISSION
from pyams_content.profile.interfaces import IAdminProfile
from pyams_content.root.interfaces import ISiteRoot
-from pyams_content.shared.common.interfaces import ISharedTool, IManagerRestrictions
+from pyams_content.shared.common.interfaces import IBaseSharedTool, IManagerRestrictions
from pyams_content.shared.common.interfaces.zmi import ISiteRootDashboardTable
from pyams_content.zmi.interfaces import IDashboardMenu, IMyDashboardMenu, IAllContentsMenu
from pyams_i18n.interfaces import II18n
@@ -34,11 +34,13 @@
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, Any, Eq
+from hypatia.query import And, Or, Any, Eq, Any
from pyams_catalog.query import CatalogResultSet
+from pyams_content.shared.common import CONTENT_TYPES
from pyams_content.shared.common.zmi.dashboard import BaseDashboardTable as BaseDashboardTableBase
from pyams_pagelet.pagelet import pagelet_config
from pyams_skin.container import ContainerView
@@ -145,11 +147,12 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
params = None
- for tool in get_all_utilities_registered_for(ISharedTool):
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
workflow = IWorkflow(tool)
- query = Eq(catalog['content_type'], tool.shared_content_type) & \
+ query = Eq(catalog['parents'], intids.register(tool)) & \
Any(catalog['workflow_state'], workflow.waiting_states)
params = params | query if params else query
return filter(self.check_access,
@@ -190,11 +193,12 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
params = None
- for tool in get_all_utilities_registered_for(ISharedTool):
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
workflow = IWorkflow(tool)
- query = Eq(catalog['content_type'], tool.shared_content_type) & \
+ query = Eq(catalog['parents'], intids.register(tool)) & \
Any(catalog['workflow_state'], workflow.waiting_states) & \
Eq(catalog['workflow_principal'], self.request.principal.id)
params = params | query if params else query
@@ -228,10 +232,12 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
params = None
- for tool in get_all_utilities_registered_for(ISharedTool):
- query = And(Eq(catalog['content_type'], tool.shared_content_type),
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
+ query = And(Eq(catalog['parents'], intids.register(tool)),
+ Any(catalog['content_type'], CONTENT_TYPES.keys()),
Or(Eq(catalog['role:owner'], self.request.principal.id),
Eq(catalog['role:contributor'], self.request.principal.id)))
params = params | query if params else query
@@ -287,11 +293,13 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
profile = IAdminProfile(self.request.principal)
params = None
- for tool in get_all_utilities_registered_for(ISharedTool):
- query = And(Eq(catalog['content_type'], tool.shared_content_type),
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
+ query = And(Eq(catalog['parents'], intids.register(tool)),
+ Any(catalog['content_type'], CONTENT_TYPES.keys()),
Any(catalog['oid'], profile.favorites or ()))
params = params | query if params else query
return unique(map(lambda x: IWorkflowVersions(x).get_last_versions()[0],
@@ -346,11 +354,12 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
params = None
- for tool in get_all_utilities_registered_for(ISharedTool):
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
workflow = IWorkflow(tool)
- query = And(Eq(catalog['content_type'], tool.shared_content_type),
+ query = And(Eq(catalog['parents'], intids.register(tool)),
Or(Eq(catalog['role:owner'], self.request.principal.id),
Eq(catalog['role:contributor'], self.request.principal.id)),
Eq(catalog['workflow_state'], workflow.initial_state))
@@ -406,11 +415,12 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
params = None
- for tool in get_all_utilities_registered_for(ISharedTool):
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
workflow = IWorkflow(tool)
- query = And(Eq(catalog['content_type'], tool.shared_content_type),
+ query = And(Eq(catalog['parents'], intids.register(tool)),
Or(Eq(catalog['role:owner'], self.request.principal.id),
Eq(catalog['role:contributor'], self.request.principal.id)),
Any(catalog['workflow_state'], workflow.waiting_states))
@@ -466,11 +476,12 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
params = None
- for tool in get_all_utilities_registered_for(ISharedTool):
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
workflow = IWorkflow(tool)
- query = And(Eq(catalog['content_type'], tool.shared_content_type),
+ query = And(Eq(catalog['parents'], intids.register(tool)),
Or(Eq(catalog['role:owner'], self.request.principal.id),
Eq(catalog['role:contributor'], self.request.principal.id)),
Any(catalog['workflow_state'], workflow.published_states))
@@ -526,11 +537,12 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
params = None
- for tool in get_all_utilities_registered_for(ISharedTool):
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
workflow = IWorkflow(tool)
- query = And(Eq(catalog['content_type'], tool.shared_content_type),
+ query = And(Eq(catalog['parents'], intids.register(tool)),
Or(Eq(catalog['role:owner'], self.request.principal.id),
Eq(catalog['role:contributor'], self.request.principal.id)),
Any(catalog['workflow_state'], workflow.retired_states))
@@ -587,12 +599,13 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
params = None
principal_id = self.request.principal.id
- for tool in get_all_utilities_registered_for(ISharedTool):
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
workflow = IWorkflow(tool)
- query = And(Eq(catalog['content_type'], tool.shared_content_type),
+ query = And(Eq(catalog['parents'], intids.register(tool)),
Or(Eq(catalog['role:owner'], principal_id),
Eq(catalog['role:contributor'], principal_id)),
Any(catalog['workflow_state'], workflow.archived_states))
@@ -676,11 +689,12 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
params = None
- for tool in get_all_utilities_registered_for(ISharedTool):
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
workflow = IWorkflow(tool)
- query = And(Eq(catalog['content_type'], tool.shared_content_type),
+ query = And(Eq(catalog['parents'], intids.register(tool)),
Any(catalog['workflow_state'], workflow.published_states))
params = params | query if params else query
return unique(CatalogResultSet(CatalogQuery(catalog).query(params,
@@ -742,10 +756,12 @@
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
params = None
- for tool in get_all_utilities_registered_for(ISharedTool):
- query = Eq(catalog['content_type'], tool.shared_content_type)
+ for tool in get_all_utilities_registered_for(IBaseSharedTool):
+ query = Eq(catalog['parents'], intids.register(tool)) & \
+ Any(catalog['content_type'], CONTENT_TYPES.keys())
params = params | query if params else query
return unique(CatalogResultSet(CatalogQuery(catalog).query(params,
limit=50,