]> git.ipfire.org Git - ipfire.org.git/commitdiff
wiki: Let search function return a list of pages instead of a generator
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 27 Apr 2019 15:16:06 +0000 (16:16 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 27 Apr 2019 15:16:06 +0000 (16:16 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/wiki.py
src/web/wiki.py

index 53fe6a97ead02389297d73e95b7fca2ffe15996f..a390ce37d5622516481f6c3bcdb72202a47008aa 100644 (file)
@@ -99,18 +99,21 @@ class Wiki(misc.Object):
                                ORDER BY ts_rank(search_index.document, to_tsquery('english', %s)) DESC",
                        query, query)
 
+               pages = []
                for page in res:
                        # Skip any pages the user doesn't have permission for
                        if not page.check_acl(account):
                                continue
 
                        # Return any other pages
-                       yield page
+                       pages.append(page)
 
-                       limit -= 1
-                       if not limit:
+                       # Break when we have found enough pages
+                       if limit and len(pages) >= limit:
                                break
 
+               return pages
+
        def refresh(self):
                """
                        Needs to be called after a page has been changed
index 1aae7e1db1febe6ff8aae91ffd108b9921c1d2cb..a997ed4a328a95e42e259f296dd4d9e9f9b73e5c 100644 (file)
@@ -228,7 +228,7 @@ class SearchHandler(auth.CacheMixin, base.BaseHandler):
 
                pages = self.backend.wiki.search(q, account=self.current_user, limit=50)
 
-               self.render("wiki/search-results.html", q=q, pages=list(pages))
+               self.render("wiki/search-results.html", q=q, pages=pages)
 
 
 class RecentChangesHandler(auth.CacheMixin, base.BaseHandler):