diff options
Diffstat (limited to 'pysite/views/wiki/history/show.py')
-rw-r--r-- | pysite/views/wiki/history/show.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/pysite/views/wiki/history/show.py b/pysite/views/wiki/history/show.py new file mode 100644 index 00000000..9580816f --- /dev/null +++ b/pysite/views/wiki/history/show.py @@ -0,0 +1,27 @@ +# coding=utf-8 +import datetime + +from werkzeug.exceptions import NotFound + +from pysite.base_route import RouteView +from pysite.mixins import DBMixin + + +class RevisionsListView(RouteView, DBMixin): + path = "/history/show/<string:page>" + name = "history.show" + + table_name = "wiki_revisions" + table_primary_key = "id" + + def get(self, page): + results = self.db.filter(self.table_name, lambda revision: revision["slug"] == page) + if len(results) == 0: + raise NotFound() + + for result in results: + ts = datetime.datetime.fromtimestamp(result["date"]) + result["pretty_time"] = ts.strftime("%d %b %Y") + + results = sorted(results, key=lambda revision: revision["date"], reverse=True) + return self.render("wiki/revision_list.html", page=page, revisions=results), 200 |