src/templates/wiki/base.html \
src/templates/wiki/edit.html \
src/templates/wiki/page.html \
- src/templates/wiki/recent-changes.html
+ src/templates/wiki/recent-changes.html \
+ src/templates/wiki/revisions.html
templates_wikidir = $(templatesdir)/wiki
return self.backend.wiki.make_breadcrumbs(self.page)
def get_latest_revision(self):
- return self.backend.wiki.get_page(self.page)
+ revisions = self.get_revisions()
+
+ # Return first object
+ for rev in revisions:
+ return rev
+
+ def get_revisions(self):
+ return self.backend.wiki._get_pages("SELECT * FROM wiki \
+ WHERE page = %s ORDER BY timestamp DESC", self.page)
@property
def changes(self):
--- /dev/null
+{% extends "page.html" %}
+
+{% block title %}{{ _("Revisions of %s") % page.title }}{% end block %}
+
+{% block main %}
+ {% if not request.path == "/" %}
+ {% module WikiNavbar(page) %}
+ {% end %}
+
+ <div class="card mb-3">
+ <div class="card-body">
+ <h4 class="card-title">{{ _("Revisions of %s") % page.title }}</h4>
+
+ {% module WikiList(page.get_revisions(), show_breadcrumbs=False, link_revision=True) %}
+ </div>
+ </div>
+{% end block %}
@tornado.web.removeslash
def get(self, page):
- page = self.backend.wiki.get_page(page)
+ # Check if we are asked to render a certain revision
+ revision = self.get_argument("revision", None)
+
+ # Fetch the wiki page
+ page = self.backend.wiki.get_page(page, revision=revision)
# Edit
if self.action == "edit":
if page and page.was_deleted():
page = None
- # Render login
- return self.render("wiki/edit.html", page=page)
+ # Render page
+ self.render("wiki/edit.html", page=page)
+ return
+
+ # Revisions
+ elif self.action == "revisions":
+ self.render("wiki/revisions.html", page=page)
+ return
# If the page does not exist, we send 404
if not page or page.was_deleted():
class WikiListModule(ui_modules.UIModule):
- def render(self, pages, show_breadcrumbs=True, show_changes=False):
- return self.render_string("wiki/modules/list.html",
+ def render(self, pages, link_revision=False, show_breadcrumbs=True, show_changes=False):
+ return self.render_string("wiki/modules/list.html", link_revision=link_revision,
pages=pages, show_breadcrumbs=show_breadcrumbs, show_changes=show_changes)