--- a/src/pyams_content/features/search/__init__.py Tue Dec 01 09:19:16 2020 +0100
+++ b/src/pyams_content/features/search/__init__.py Mon Jan 11 16:45:22 2021 +0100
@@ -64,12 +64,15 @@
return True
def get_results(self, context, sort_index=None, reverse=None, limit=None,
- start=0, length=None, ignore_cache=False, get_count=False, request=None):
+ start=0, length=None, ignore_cache=False, get_count=False, request=None,
+ aggregates=None):
if not ignore_cache:
- request = check_request()
+ if request is None:
+ request = check_request()
ignore_cache = bool(request.params)
return super(SearchFolder, self).get_results(context, sort_index, reverse, limit, start,
- length, ignore_cache, get_count, request)
+ length, ignore_cache, get_count, request,
+ aggregates)
@adapter_config(context=ISearchFolder, provides=IFormContextPermissionChecker)
@@ -143,3 +146,15 @@
Contains(index, ' and '.join((w + '*'
for w in fulltext.split()))))
yield Or(*query_params)
+
+
+@adapter_config(name='content_type', context=SearchFolderQuery, provides=IViewUserQuery)
+class SearchFolderContentTypeQuery(ContextAdapter):
+ """Search folder content-type query"""
+
+ @staticmethod
+ def get_user_params(request):
+ content_type = request.params.get('content_type')
+ if content_type:
+ catalog = get_utility(ICatalog)
+ yield Eq(catalog['content_type'], content_type)