# HG changeset patch # User Ludovic Chabant # Date 1442682891 25200 # Node ID ece930a816b1c492ea9b98d9b2563b166459611b # Parent 59bbf4358a76fcd3e71f04cea8bfd5037a01d04c Add ability to look at whole change diffs from the site history page. diff -r 59bbf4358a76 -r ece930a816b1 wikked/templates/diff-rev.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wikked/templates/diff-rev.html Sat Sep 19 10:14:51 2015 -0700 @@ -0,0 +1,15 @@ +{% extends 'index.html' %} +{% block content %} +
+
+

Change Overview

+
+ Diff change {{disp_rev}} +
+
+
+
{{diff|safe}}
+
+
+{% endblock %} + diff -r 59bbf4358a76 -r ece930a816b1 wikked/templates/special-changes.html --- a/wikked/templates/special-changes.html Sat Sep 19 10:12:18 2015 -0700 +++ b/wikked/templates/special-changes.html Sat Sep 19 10:14:51 2015 -0700 @@ -17,7 +17,10 @@ {%for e in history%} - {{e.rev_name}} + +

{{e.rev_name}}

+

Show Diff.

+
Date
diff -r 59bbf4358a76 -r ece930a816b1 wikked/views/history.py --- a/wikked/views/history.py Sat Sep 19 10:12:18 2015 -0700 +++ b/wikked/views/history.py Sat Sep 19 10:14:51 2015 -0700 @@ -6,7 +6,7 @@ from wikked.webimpl import url_from_viewarg from wikked.webimpl.history import ( get_site_history, get_page_history, - read_page_rev, diff_page_revs) + read_page_rev, diff_revs, diff_page_revs) @app.route('/special/history') @@ -87,3 +87,14 @@ urllib.parse.urlencode(raw_url_args))) return render_template('diff-page.html', **data) + +@app.route('/diff_rev/') +def diff_revision(rev): + wiki = get_wiki() + user = current_user.get_id() + data = diff_revs(wiki, user, rev) + add_auth_data(data) + add_navigation_data( + '', data) + return render_template('diff-rev.html', **data) + diff -r 59bbf4358a76 -r ece930a816b1 wikked/webimpl/history.py --- a/wikked/webimpl/history.py Sat Sep 19 10:12:18 2015 -0700 +++ b/wikked/webimpl/history.py Sat Sep 19 10:14:51 2015 -0700 @@ -91,6 +91,15 @@ return result +def diff_revs(wiki, user, rev, raw=False): + diff = wiki.scm.diff(path=None, rev1=rev, rev2=None) + if not raw: + lexer = get_lexer_by_name('diff') + formatter = get_formatter_by_name('html') + diff = highlight(diff, lexer, formatter) + return {'diff': diff, 'disp_rev': rev} + + def revert_page(wiki, user, url, rev, message=None): message = message or 'Reverted %s to revision %s' % (url, rev) page_fields = {