aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/wiki/special/all_pages.py
diff options
context:
space:
mode:
Diffstat (limited to 'pysite/views/wiki/special/all_pages.py')
-rw-r--r--pysite/views/wiki/special/all_pages.py26
1 files changed, 26 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..2d5376aa
--- /dev/null
+++ b/pysite/views/wiki/special/all_pages.py
@@ -0,0 +1,26 @@
+from operator import itemgetter
+
+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=itemgetter("title"))
+
+ letters = {}
+
+ for page in pages:
+ 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)