aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/wiki/history/show.py
diff options
context:
space:
mode:
authorGravatar Joseph <[email protected]>2018-04-17 23:12:35 +0100
committerGravatar GitHub <[email protected]>2018-04-17 23:12:35 +0100
commitc99f816e71d28dfaf3bd44d27d211f2b44778f48 (patch)
tree297747765dfcd5163839333c0879e04e2e4b565b /pysite/views/wiki/history/show.py
parentJSON 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.py27
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