diff options
Diffstat (limited to 'pysite/views/wiki/special')
| -rw-r--r-- | pysite/views/wiki/special/__init__.py | 1 | ||||
| -rw-r--r-- | pysite/views/wiki/special/all_pages.py | 27 | ||||
| -rw-r--r-- | pysite/views/wiki/special/index.py | 10 | 
3 files changed, 38 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..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) 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")  |