diff options
Diffstat (limited to 'pysite/views')
| -rw-r--r-- | pysite/views/wiki/delete.py | 5 | ||||
| -rw-r--r-- | pysite/views/wiki/move.py | 7 | 
2 files changed, 12 insertions, 0 deletions
| diff --git a/pysite/views/wiki/delete.py b/pysite/views/wiki/delete.py index 47759a87..4c88a955 100644 --- a/pysite/views/wiki/delete.py +++ b/pysite/views/wiki/delete.py @@ -43,6 +43,11 @@ class DeleteView(RouteView, DBMixin):          self.db.delete(self.table_name, page)          self.db.delete(self.revision_table_name, page) +        revisions = self.db.filter(self.revision_table_name, lambda revision: revision["slug"] == page) + +        for revision in revisions: +            self.db.delete(self.revision_table_name, revision["id"]) +          self.audit_log(obj)          return redirect(url_for("wiki.page", page="home"), code=303)  # Redirect, ensuring a GET diff --git a/pysite/views/wiki/move.py b/pysite/views/wiki/move.py index 0d7985b4..9f898c43 100644 --- a/pysite/views/wiki/move.py +++ b/pysite/views/wiki/move.py @@ -56,6 +56,13 @@ class MoveView(RouteView, DBMixin):          self.db.delete(self.table_name, page) +        # Move all revisions for the old slug to the new slug. +        revisions = self.db.filter(self.revision_table_name, lambda revision: revision["slug"] == obj["slug"]) + +        for revision in revisions: +            revision["slug"] = location +            self.db.insert(self.revision_table_name, revision, conflict="update") +          obj["slug"] = location          self.db.insert(self.table_name, obj, conflict="update") | 
