aboutsummaryrefslogtreecommitdiffstats
path: root/pysite/views/wiki/edit.py
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-04-04 16:09:05 +0100
committerGravatar Gareth Coles <[email protected]>2018-04-04 16:09:05 +0100
commit1d1e17f7f19203d449c8641794cd2c61705fdcd2 (patch)
tree63640306e93059a181b2af04952b0403c38ef8ee /pysite/views/wiki/edit.py
parentCSRF error route doesn't do shit, sadly (diff)
Early wiki work including a WS test route for RST parsing
Diffstat (limited to 'pysite/views/wiki/edit.py')
-rw-r--r--pysite/views/wiki/edit.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/pysite/views/wiki/edit.py b/pysite/views/wiki/edit.py
index 5c914c16..fac5532e 100644
--- a/pysite/views/wiki/edit.py
+++ b/pysite/views/wiki/edit.py
@@ -1,13 +1,25 @@
# coding=utf-8
+from flask import url_for
+from werkzeug.utils import redirect
+
from pysite.base_route import RouteView
from pysite.constants import ALL_STAFF_ROLES
-from pysite.decorators import require_roles
+from pysite.decorators import require_roles, csrf
+from pysite.mixins import DBMixin
-class EditView(RouteView):
+class EditView(RouteView, DBMixin):
path = "/edit/<path:page>" # "path" means that it accepts slashes
name = "edit"
+ table_name = "wiki"
+ table_primary_key = "slug"
+
@require_roles(*ALL_STAFF_ROLES)
def get(self, page):
- return self.render("staff/staff.html")
+ return self.render("wiki/page_edit.html", page=page)
+
+ @require_roles(*ALL_STAFF_ROLES)
+ @csrf
+ def post(self, page):
+ return redirect(url_for("wiki.page", page=page), code=303) # Redirect, ensuring a GET