src/pyams_content/features/search/portlet/__init__.py
changeset 1352 8242968d86b1
parent 1261 c9f9e7036daf
child 1389 1485db1e2b5e
--- a/src/pyams_content/features/search/portlet/__init__.py	Wed Sep 25 09:50:05 2019 +0200
+++ b/src/pyams_content/features/search/portlet/__init__.py	Wed Sep 25 09:52:05 2019 +0200
@@ -45,7 +45,7 @@
         return params.get('user_search', '').strip() or params.get('tag', '').strip()
 
     @staticmethod
-    def _get_items(request=None, limit=None, ignore_cache=False):
+    def _get_items(request=None, start=0, length=10, limit=None, ignore_cache=False):
         context = get_parent(request.context, ISearchFolder)
         if context is None:
             raise StopIteration
@@ -54,34 +54,36 @@
                 request = check_request()
             params = request.params
             order_by = params.get('order_by', context.order_by)
-            if (order_by == RELEVANCE_ORDER) and not SearchResultsPortletSettings.has_user_query(request):
+            if (order_by == RELEVANCE_ORDER) and \
+                    not SearchResultsPortletSettings.has_user_query(request):
                 request.GET['order_by'] = order_by = VISIBLE_PUBLICATION_DATE_ORDER
             yield from context.get_results(context, order_by,
                                            reverse=order_by != RELEVANCE_ORDER,
                                            limit=limit,
-                                           start=int(params.get('start', 0)),
-                                           length=int(params.get('length', 10)),
+                                           start=int(start),
+                                           length=int(length),
                                            ignore_cache=ignore_cache,
                                            get_count=True,
                                            request=request)
 
-    def get_items(self, request=None, limit=None, ignore_cache=False):
+    def get_items(self, request=None, start=0, length=10, limit=None, ignore_cache=False):
         if not (self.allow_empty_query or self.has_user_query(request)):
-            yield from iter(((), 0),)
+            yield from iter(((), 0), )
         else:
-            check, items = tee(SearchResultsPortletSettings._get_items(request, limit, ignore_cache))
+            check, items = tee(
+                SearchResultsPortletSettings._get_items(request, start, length, limit,
+                                                        ignore_cache))
             try:
                 next(check)
             except StopIteration:
-                yield from iter(((), 0),)
+                yield from iter(((), 0), )
             else:
                 yield from items
 
     @staticmethod
-    def get_pages(request, count):
-        params = request.params
-        start = int(params.get('start', 0)) + 1
-        length = int(params.get('length', 10))
+    def get_pages(start, length, count):
+        start = int(start) + 1
+        length = int(length)
         current = math.ceil(start / length)
         nb_pages = math.ceil(count / length)
         return current, nb_pages