ImprovedMoinSearch

Changeset

2:0f8223a1cf51
2010-07-05 Paul Boddie raw files shortlog changelog graph 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.
ImprovedMoinSearch.py (file) macros/PageListPlus.py (file)
     1.1 --- a/ImprovedMoinSearch.py	Mon Jun 28 01:39:21 2010 +0200
     1.2 +++ b/ImprovedMoinSearch.py	Mon Jul 05 00:46:43 2010 +0200
     1.3 @@ -82,7 +82,7 @@
     1.4      # Prepare the output.
     1.5  
     1.6      output = []
     1.7 -    output.append(formatter.number_list(on=1))
     1.8 +    output.append(formatter.number_list(on=1, start=page_from + 1))
     1.9  
    1.10      for page in pages_to_show:
    1.11          output.append(formatter.listitem(on=1))
    1.12 @@ -114,6 +114,8 @@
    1.13      indicator which provides the current position in the result set.
    1.14      """
    1.15  
    1.16 +    page = formatter.page
    1.17 +    pagename = page.page_name
    1.18      _ = request.getText
    1.19  
    1.20      output = []
    1.21 @@ -133,7 +135,7 @@
    1.22  
    1.23      n = 0
    1.24      while n < pages_before:
    1.25 -        output.append(formatter.pagelink(on=1, querystr=getPagingQueryString(querydict, n * results_per_page)))
    1.26 +        output.append(formatter.pagelink(on=1, pagename=pagename, querystr=getPagingQueryString(querydict, n * results_per_page)))
    1.27          output.append(formatter.text(str(n + 1)))
    1.28          output.append(formatter.pagelink(on=0))
    1.29          output.append(formatter.text(" "))
    1.30 @@ -143,8 +145,8 @@
    1.31      output.append(formatter.text(" "))
    1.32      n += 1
    1.33  
    1.34 -    while n < pages_total:
    1.35 -        output.append(formatter.pagelink(on=1, querystr=getPagingQueryString(querydict, n * results_per_page)))
    1.36 +    while n <= pages_total:
    1.37 +        output.append(formatter.pagelink(on=1, pagename=pagename, querystr=getPagingQueryString(querydict, n * results_per_page)))
    1.38          output.append(formatter.text(str(n + 1)))
    1.39          output.append(formatter.pagelink(on=0))
    1.40          output.append(formatter.text(" "))
     2.1 --- a/macros/PageListPlus.py	Mon Jun 28 01:39:21 2010 +0200
     2.2 +++ b/macros/PageListPlus.py	Mon Jul 05 00:46:43 2010 +0200
     2.3 @@ -65,9 +65,13 @@
     2.4      try:
     2.5          pages = ImprovedMoinSearch.getSearchResultPages(request, needle, titlesearch=1, sort='page_name')
     2.6  
     2.7 +        # Get any paging information from the request.
     2.8 +
     2.9 +        page_from = int(request.form.get("from", ["0"])[0])
    2.10 +
    2.11          # Format the results.
    2.12  
    2.13 -        ret = ImprovedMoinSearch.formatResultPages(request, formatter, pages, paging, format)
    2.14 +        ret = ImprovedMoinSearch.formatResultPages(request, formatter, pages, paging, format, page_from)
    2.15  
    2.16      except ValueError:
    2.17