src/pyams_content/features/search/__init__.py
changeset 1443 2af30495d1d7
parent 1388 8c757af2fc50
child 1456 a07b27effd38
--- 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)