X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/7c8d3ac9807cf36af4c16aa26841104914c2033e..f8dc1e5b5062456deab01f927e82b753202f31e3:/apps/api/handlers/library_handlers.py?ds=sidebyside diff --git a/apps/api/handlers/library_handlers.py b/apps/api/handlers/library_handlers.py index 0a45a0b1..b635d4ec 100755 --- a/apps/api/handlers/library_handlers.py +++ b/apps/api/handlers/library_handlers.py @@ -31,6 +31,10 @@ import api.response as response from api.utils import validate_form, hglibrary, natural_order from api.models import PartCache, PullRequest +from pygments import highlight +from pygments.lexers import DiffLexer +from pygments.formatters import HtmlFormatter + # import settings @@ -205,19 +209,23 @@ class DiffHandler(BaseHandler): allowed_methods = ('GET',) @hglibrary - def read(self, request, source_revision, target_revision, lib): - '''Return diff between source_revision and target_revision)''' - source_document = lib.document_for_revision(source_revision) - target_document = lib.document_for_revision(target_revision) - print source_document, - print target_document + def read(self, request, docid, lib): + '''Return diff between source_revision and target_revision)''' + revision = request.GET.get('revision') + if not revision: + return '' + source_document = lib.document(docid) + target_document = lib.document_for_revision(revision) + print source_document, target_document + diff = difflib.unified_diff( source_document.data('xml').splitlines(True), target_document.data('xml').splitlines(True), 'source', 'target') - return ''.join(list(diff)) + s = ''.join(list(diff)) + return highlight(s, DiffLexer(), HtmlFormatter(cssclass="pastie")) # @@ -231,7 +239,7 @@ class DocumentHandler(BaseHandler): @hglibrary def read(self, request, form, docid, lib): """Read document's meta data""" - log.info(u"User '%s' wants to %s(%s) as %s" % \ + log.info(u"User '%s' wants to edit %s(%s) as %s" % \ (request.user.username, docid, form.cleaned_data['revision'], form.cleaned_data['user']) ) user = form.cleaned_data['user'] or request.user.username @@ -338,10 +346,10 @@ class DocumentHTMLHandler(BaseHandler): 'reason': 'not-found', 'message': e.message}) except librarian.ValidationError, e: return response.InternalError().django_response({ - 'reason': 'xml-non-valid', 'message': e.message }) + 'reason': 'xml-non-valid', 'message': e.message or u''}) except librarian.ParseError, e: return response.InternalError().django_response({ - 'reason': 'xml-parse-error', 'message': e.message }) + 'reason': 'xml-parse-error', 'message': e.message or u'' }) # # Image Gallery