diff -r 045be80a5645 -r 8242968d86b1 src/pyams_content/features/search/portlet/__init__.py --- 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