diff options
author | 2018-05-05 17:37:58 +0100 | |
---|---|---|
committer | 2018-05-05 17:37:58 +0100 | |
commit | 7fda7be72d9b9abaec92b799760b1acfaeffa232 (patch) | |
tree | 4b46afc189587a403396b5d71b8726da00a2702c /pysite/views/wiki/special/all_pages.py | |
parent | Use Discord embed image for index page button (diff) | |
parent | Update README.md (diff) |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'pysite/views/wiki/special/all_pages.py')
-rw-r--r-- | pysite/views/wiki/special/all_pages.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/pysite/views/wiki/special/all_pages.py b/pysite/views/wiki/special/all_pages.py new file mode 100644 index 00000000..d2e02a72 --- /dev/null +++ b/pysite/views/wiki/special/all_pages.py @@ -0,0 +1,27 @@ +from pysite.base_route import RouteView +from pysite.mixins import DBMixin + + +class PageView(RouteView, DBMixin): + path = "/special/all_pages" + name = "special.all_pages" + table_name = "wiki" + + def get(self): + pages = self.db.pluck(self.table_name, "title", "slug") + pages = sorted(pages, key=lambda d: d.get("title", "No Title")) + + letters = {} + + for page in pages: + if "title" not in page: + page["title"] = "No Title" + + letter = page["title"][0].upper() + + if letter not in letters: + letters[letter] = [] + + letters[letter].append(page) + + return self.render("wiki/special_all.html", letters=letters) |