aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/wiki/special/all_pages.py
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-05-05 17:37:58 +0100
committerGravatar Gareth Coles <[email protected]>2018-05-05 17:37:58 +0100
commit7fda7be72d9b9abaec92b799760b1acfaeffa232 (patch)
tree4b46afc189587a403396b5d71b8726da00a2702c /pysite/views/wiki/special/all_pages.py
parentUse Discord embed image for index page button (diff)
parentUpdate 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.py27
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)