diff options
author | 2018-04-17 23:12:35 +0100 | |
---|---|---|
committer | 2018-04-17 23:12:35 +0100 | |
commit | c99f816e71d28dfaf3bd44d27d211f2b44778f48 (patch) | |
tree | 297747765dfcd5163839333c0879e04e2e4b565b /pysite/views/wiki/history/show.py | |
parent | JSON file had the wrong name. I should be incarcerated. (diff) |
Add wiki audit logs (#52)
* Add wiki audit logs
* Flake8 issues
* Forgot to remove debug prints
* Removed print but forgot to remove `.text`
* Futile attempt to increase coverage
* Reading up on API docs asks us to send User-Agent with our info in it
* Add tests for wiki
* Well played, Travis
* Nothing in my local env is working on travis lol
* Why does it appear it can't decide between 200 & 302 :thinking:
* Flake8
* Post route
* Same issue with local env working differently from Travis env
* Add page to show page is being edited
* Lock page when it is being edited
* Add JS to keep refreshing lock on article
* Add compare route to render diff
* Add revision table to database
* Add revision storage
* Add revision list route
* JS for Revision list radio buttons
* Add revision comparison template
* Add revision list template
* flak8 my ass
* [Unit Tests] New unit tests for history routes :sparkles:
* Does this fix things?
* Address gdude's reviews
* Noticed a bug in the diff generation route which meant that empty posts could potentially error
* Flake 8
* Audit logs were logging after change, meaning it was comparing after & after, which didn't work
* Change table name
* Remove whitespace from line to fix flake8 issue
* Address reviews
* Git hook made me do something wrong, apologies
* Switch from werkzeug redirect to flask one
* Address Apertures reviews
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 |