--- a/src/pyams_content/shared/common/zmi/search.py Fri Nov 10 12:07:43 2017 +0100
+++ b/src/pyams_content/shared/common/zmi/search.py Tue Nov 14 14:05:30 2017 +0100
@@ -18,7 +18,7 @@
# import interfaces
from hypatia.interfaces import ICatalog
from pyams_content.profile.interfaces import IAdminProfile
-from pyams_content.shared.common.interfaces import ISharedTool
+from pyams_content.shared.common.interfaces import IBaseSharedTool
from pyams_content.shared.common.interfaces.zmi import ISharedToolDashboardTable
from pyams_i18n.interfaces import INegotiator
from pyams_pagelet.interfaces import PageletCreatedEvent
@@ -29,10 +29,12 @@
from pyams_workflow.interfaces import IWorkflowVersions, IWorkflow
from z3c.table.interfaces import IValues
from zope.dublincore.interfaces import IZopeDublinCore
+from zope.intid.interfaces import IIntIds
# import packages
from hypatia.catalog import CatalogQuery
-from hypatia.query import Eq, Contains, Ge, Le
+from hypatia.query import Eq, Contains, Ge, Le, Any
+from pyams_content.shared.common import CONTENT_TYPES
from pyams_content.workflow import STATES_VOCABULARY
from pyams_catalog.query import CatalogResultSet
from pyams_form.search import SearchView, SearchForm, SearchResultsView, ISearchFields
@@ -47,8 +49,6 @@
from pyams_utils.registry import get_utility
from pyams_utils.url import absolute_url
from pyams_zmi.view import AdminView
-from pyramid.decorator import reify
-from pyramid.response import Response
from pyramid.view import view_config
from z3c.form import field
from zope.interface import implementer
@@ -61,7 +61,7 @@
# Quick search adapters
#
-@view_config(name='quick-search.html', context=ISharedTool, request_type=IPyAMSLayer,
+@view_config(name='quick-search.html', context=IBaseSharedTool, request_type=IPyAMSLayer,
permission=VIEW_SYSTEM_PERMISSION, renderer='json', xhr=True)
def shared_tool_quick_search_view(request):
"""Shared tool quick search view"""
@@ -93,14 +93,16 @@
return attributes
-@adapter_config(context=(ISharedTool, IPyAMSLayer, SharedToolQuickSearchResults), provides=IValues)
+@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolQuickSearchResults), provides=IValues)
class SharedToolQuickSearchValues(ContextRequestViewAdapter):
"""Shared tool quick search results view values adapter"""
@property
def values(self):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
- params = Eq(catalog['content_type'], self.context.shared_content_type)
+ params = Eq(catalog['parents'], intids.register(self.context)) & \
+ Any(catalog['content_type'], CONTENT_TYPES.keys())
query = self.request.params.get('query')
if query:
sequence = get_utility(ISequentialIntIds)
@@ -173,13 +175,15 @@
return fields
-@adapter_config(context=(ISharedTool, IPyAMSLayer, SharedToolAdvancedSearchForm), provides=IContentSearch)
+@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAdvancedSearchForm), provides=IContentSearch)
class SharedToolAdvancedSearchFormSearchAdapter(ContextRequestViewAdapter):
"""Shared tool adavanced search form search adapter"""
def get_search_results(self, data):
+ intids = get_utility(IIntIds)
catalog = get_utility(ICatalog)
- params = Eq(catalog['content_type'], self.context.shared_content_type)
+ params = Eq(catalog['parents'], intids.register(self.context)) & \
+ Any(catalog['content_type'], CONTENT_TYPES.keys())
query = data.get('query')
if query:
sequence = get_utility(ISequentialIntIds)
@@ -222,14 +226,15 @@
reverse=True))))
-@pagelet_config(name='advanced-search.html', context=ISharedTool, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
+@pagelet_config(name='advanced-search.html', context=IBaseSharedTool, layer=IPyAMSLayer,
+ permission=VIEW_SYSTEM_PERMISSION)
class SharedToolAdvancedSearchView(SearchView):
"""Shared tool advanced search view"""
search_form_factory = SharedToolAdvancedSearchForm
-@adapter_config(context=(ISharedTool, IPyAMSLayer, SharedToolAdvancedSearchView), provides=IPageHeader)
+@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAdvancedSearchView), provides=IPageHeader)
class SharedToolAdvancedSearchHeaderAdapter(DefaultPageHeaderAdapter):
"""Shared tool advanced search header adapter"""
@@ -239,7 +244,7 @@
icon_class = 'fa fa-fw fa-search'
-@view_config(name='advanced-search-results.html', context=ISharedTool, request_type=IPyAMSLayer,
+@view_config(name='advanced-search-results.html', context=IBaseSharedTool, request_type=IPyAMSLayer,
permission=VIEW_SYSTEM_PERMISSION)
@implementer(ISharedToolDashboardTable)
class SharedToolAdvancedSearchResultsView(AdminView, SearchResultsView):
@@ -263,7 +268,7 @@
return attributes
-@adapter_config(context=(ISharedTool, IPyAMSLayer, SharedToolAdvancedSearchResultsView), provides=IValues)
+@adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAdvancedSearchResultsView), provides=IValues)
class SearchResultsViewValuesAdapter(ContextRequestViewAdapter):
"""Search results view values adapter"""