aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/wiki/special/all_pages.py
blob: 2d5376aa9860bbe858b03d38f0a5883adb7d73ce (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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)