changeset 7977:2323e2bb2797

page: consistently invoke Page with kwargs instead of explicitly providing a custom url generator Drop the option of providing an url maker as 'url', and thus also hardcode the assumption that the page parameter is called page.
author Mads Kiilerich <mads@kiilerich.com>
date Fri, 08 Nov 2019 00:23:10 +0100
parents 2a6b6baf1448
children 7433775cc53b
files kallithea/controllers/admin/admin.py kallithea/controllers/journal.py kallithea/controllers/search.py kallithea/lib/page.py
diffstat 4 files changed, 11 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/controllers/admin/admin.py	Sat Nov 09 19:08:16 2019 +0100
+++ b/kallithea/controllers/admin/admin.py	Fri Nov 08 00:23:10 2019 +0100
@@ -36,7 +36,6 @@
 from whoosh.qparser.dateparse import DateParserPlugin
 from whoosh.qparser.default import QueryParser
 
-from kallithea.config.routing import url
 from kallithea.lib.auth import HasPermissionAnyDecorator, LoginRequired
 from kallithea.lib.base import BaseController, render
 from kallithea.lib.indexers import JOURNAL_SCHEMA
@@ -139,10 +138,8 @@
 
         p = safe_int(request.GET.get('page'), 1)
 
-        def url_generator(**kw):
-            return url.current(filter=c.search_term, **kw)
-
-        c.users_log = Page(users_log, page=p, items_per_page=10, url=url_generator)
+        c.users_log = Page(users_log, page=p, items_per_page=10,
+                           filter=c.search_term)
 
         if request.environ.get('HTTP_X_PARTIAL_XHR'):
             return render('admin/admin_log.html')
--- a/kallithea/controllers/journal.py	Sat Nov 09 19:08:16 2019 +0100
+++ b/kallithea/controllers/journal.py	Fri Nov 08 00:23:10 2019 +0100
@@ -39,7 +39,6 @@
 from webob.exc import HTTPBadRequest
 
 import kallithea.lib.helpers as h
-from kallithea.config.routing import url
 from kallithea.controllers.admin.admin import _journal_filter
 from kallithea.lib.auth import LoginRequired
 from kallithea.lib.base import BaseController, render
@@ -201,10 +200,8 @@
 
         journal = self._get_journal_data(c.following)
 
-        def url_generator(**kw):
-            return url.current(filter=c.search_term, **kw)
-
-        c.journal_pager = Page(journal, page=p, items_per_page=20, url=url_generator)
+        c.journal_pager = Page(journal, page=p, items_per_page=20,
+                               filter=c.search_term)
         c.journal_day_aggregate = self._get_daily_aggregate(c.journal_pager)
 
         if request.environ.get('HTTP_X_PARTIAL_XHR'):
--- a/kallithea/controllers/search.py	Sat Nov 09 19:08:16 2019 +0100
+++ b/kallithea/controllers/search.py	Fri Nov 08 00:23:10 2019 +0100
@@ -27,12 +27,10 @@
 
 import logging
 import traceback
-import urllib
 
 from tg import config, request
 from tg import tmpl_context as c
 from tg.i18n import ugettext as _
-from webhelpers2.html.tools import update_params
 from whoosh.index import EmptyIndexError, exists_in, open_dir
 from whoosh.qparser import QueryParser, QueryParserError
 from whoosh.query import Phrase, Prefix
@@ -119,9 +117,6 @@
                         res_ln, results.runtime
                     )
 
-                    def url_generator(**kw):
-                        q = urllib.quote(safe_str(c.cur_query))
-                        return update_params("?q=%s&type=%s" % (q, safe_str(c.cur_type)), **kw)
                     repo_location = RepoModel().repos_path
                     c.formated_results = Page(
                         WhooshResultWrapper(search_type, searcher, matcher,
@@ -129,7 +124,8 @@
                         page=p,
                         item_count=res_ln,
                         items_per_page=10,
-                        url=url_generator
+                        type=safe_str(c.cur_type),
+                        q=safe_str(c.cur_query),
                     )
 
                 except QueryParserError:
--- a/kallithea/lib/page.py	Sat Nov 09 19:08:16 2019 +0100
+++ b/kallithea/lib/page.py	Fri Nov 08 00:23:10 2019 +0100
@@ -30,10 +30,11 @@
     """
     Custom pager emitting Bootstrap paginators
     """
-
-    def __init__(self, *args, **kwargs):
-        kwargs.setdefault('url', url.current)
-        _Page.__init__(self, *args, **kwargs)
+    def __init__(self, collection,
+                 page=1, items_per_page=20, item_count=None,
+                 **kwargs):
+        _Page.__init__(self, collection, page=page, items_per_page=items_per_page, item_count=item_count,
+                       url=url.current, **kwargs)
 
     def _get_pos(self, cur_page, max_page, items):
         edge = (items / 2) + 1