aboutsummaryrefslogtreecommitdiffstats
path: root/pysite
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-05-02 13:28:51 +0100
committerGravatar Gareth Coles <[email protected]>2018-05-02 13:28:51 +0100
commit3bdffd9cfb61c8a8e75c472765fbb738a67c6ca0 (patch)
treef92ee5acfb48461c9a66da46460f51ff8d62828a /pysite
parentFixed those pesky rapper names. (#66) (diff)
Add special pages and an "all pages" special page
Diffstat (limited to 'pysite')
-rw-r--r--pysite/views/wiki/special/__init__.py1
-rw-r--r--pysite/views/wiki/special/all_pages.py26
-rw-r--r--pysite/views/wiki/special/index.py10
3 files changed, 37 insertions, 0 deletions
diff --git a/pysite/views/wiki/special/__init__.py b/pysite/views/wiki/special/__init__.py
new file mode 100644
index 00000000..9bad5790
--- /dev/null
+++ b/pysite/views/wiki/special/__init__.py
@@ -0,0 +1 @@
+# coding=utf-8
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)
diff --git a/pysite/views/wiki/special/index.py b/pysite/views/wiki/special/index.py
new file mode 100644
index 00000000..15c0a649
--- /dev/null
+++ b/pysite/views/wiki/special/index.py
@@ -0,0 +1,10 @@
+from pysite.base_route import RouteView
+from pysite.mixins import DBMixin
+
+
+class PageView(RouteView, DBMixin):
+ path = "/special"
+ name = "special"
+
+ def get(self):
+ return self.render("wiki/special.html")