def snippet_diff(request, template_name='snippet/snippet_diff.djhtml'): if request.GET.get('a').isdigit() and request.GET.get('b').isdigit(): try: fileA = Snippet.objects.get(pk=int(request.GET.get('a'))) fileB = Snippet.objects.get(pk=int(request.GET.get('b'))) except ObjectDoesNotExist: return HttpResponseBadRequest(u'Selected file(s) does not exist.') else: return HttpResponseBadRequest(u'You must select two snippets.') if fileA.content != fileB.content: d = difflib.unified_diff( fileA.content.splitlines(), fileB.content.splitlines(), 'Original', 'Current', lineterm='' ) difftext = '\n'.join(d) difftext = pygmentize(difftext, 'diff') else: difftext = _(u'No changes were made between this two files.') template_context = { 'difftext': difftext, 'fileA': fileA, 'fileB': fileB, } return render_to_response( template_name, template_context, RequestContext(request) )
def save(self, *args, **kwargs): if not self.pk: self.published = datetime.datetime.now() self.secret_id = generate_secret_id() self.content_highlighted = pygmentize(self.content, self.lexer) super(Snippet, self).save(*args, **kwargs)