# HG changeset patch # User Paul Boddie # Date 1278283603 -7200 # Node ID 0f8223a1cf514aaab9dcdfa998ede8938467eee7 # Parent 9cc135e6bfee53800b1c15cd7bc3fbdb885e13a1 Fixed an off-by-one error preventing all result pages from being shown in the paging navigation. Fixed the navigation links by introducing the current page name. Introduced usage of the 'from' request parameter in order to permit the selection of result pages other than the first from the navigation. diff -r 9cc135e6bfee -r 0f8223a1cf51 ImprovedMoinSearch.py --- a/ImprovedMoinSearch.py Mon Jun 28 01:39:21 2010 +0200 +++ b/ImprovedMoinSearch.py Mon Jul 05 00:46:43 2010 +0200 @@ -82,7 +82,7 @@ # Prepare the output. output = [] - output.append(formatter.number_list(on=1)) + output.append(formatter.number_list(on=1, start=page_from + 1)) for page in pages_to_show: output.append(formatter.listitem(on=1)) @@ -114,6 +114,8 @@ indicator which provides the current position in the result set. """ + page = formatter.page + pagename = page.page_name _ = request.getText output = [] @@ -133,7 +135,7 @@ n = 0 while n < pages_before: - output.append(formatter.pagelink(on=1, querystr=getPagingQueryString(querydict, n * results_per_page))) + output.append(formatter.pagelink(on=1, pagename=pagename, querystr=getPagingQueryString(querydict, n * results_per_page))) output.append(formatter.text(str(n + 1))) output.append(formatter.pagelink(on=0)) output.append(formatter.text(" ")) @@ -143,8 +145,8 @@ output.append(formatter.text(" ")) n += 1 - while n < pages_total: - output.append(formatter.pagelink(on=1, querystr=getPagingQueryString(querydict, n * results_per_page))) + while n <= pages_total: + output.append(formatter.pagelink(on=1, pagename=pagename, querystr=getPagingQueryString(querydict, n * results_per_page))) output.append(formatter.text(str(n + 1))) output.append(formatter.pagelink(on=0)) output.append(formatter.text(" ")) diff -r 9cc135e6bfee -r 0f8223a1cf51 macros/PageListPlus.py --- a/macros/PageListPlus.py Mon Jun 28 01:39:21 2010 +0200 +++ b/macros/PageListPlus.py Mon Jul 05 00:46:43 2010 +0200 @@ -65,9 +65,13 @@ try: pages = ImprovedMoinSearch.getSearchResultPages(request, needle, titlesearch=1, sort='page_name') + # Get any paging information from the request. + + page_from = int(request.form.get("from", ["0"])[0]) + # Format the results. - ret = ImprovedMoinSearch.formatResultPages(request, formatter, pages, paging, format) + ret = ImprovedMoinSearch.formatResultPages(request, formatter, pages, paging, format, page_from) except ValueError: