]> git.ipfire.org Git - ipfire.org.git/blobdiff - src/backend/wiki.py
wiki: Allow adding a comment when a page is being restored
[ipfire.org.git] / src / backend / wiki.py
index 9bddc32b680e10972e53b84d4209bfad27c66777..8237da97ef6e5a18a9c8b20715bcf71a9da39e58 100644 (file)
@@ -23,6 +23,14 @@ class Wiki(misc.Object):
                if res:
                        return Page(self.backend, res.id, data=res)
 
+       def __iter__(self):
+               return self._get_pages(
+                       "SELECT wiki.* FROM wiki_current current \
+                               LEFT JOIN wiki ON current.id = wiki.id \
+                               WHERE current.deleted IS FALSE \
+                               ORDER BY page",
+               )
+
        def make_path(self, page, path):
                # Nothing to do for absolute links
                if path.startswith("/"):
@@ -445,9 +453,13 @@ class Page(misc.Object):
                        self.backend.messages.send_template("wiki/messages/page-changed",
                                account=watcher, page=self, priority=-10)
 
-       def restore(self, author, address):
+       def restore(self, author, address, comment=None):
                changes = "Restore to revision from %s" % self.timestamp.isoformat()
 
+               # Append comment
+               if comment:
+                       changes = "%s: %s" % (changes, comment)
+
                return self.backend.wiki.create_page(self.page,
                        author, self.markdown, changes=changes, address=address)
 
@@ -507,7 +519,7 @@ class File(misc.Object):
 
        def get_revisions(self):
                revisions = self.backend.wiki._get_files("SELECT * FROM wiki_files \
-                       WHERE path = %s ORDER BY created_at DESC", self.path)
+                       WHERE path = %s AND filename = %s ORDER BY created_at DESC", self.path, self.filename)
 
                return list(revisions)