diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2014-01-27 12:26:10 +0200 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2014-01-27 12:26:10 +0200 |
| commit | b35021b110605716b452a99f53d3758318a70d5b (patch) | |
| tree | b1b898bc085b7c699ae0da6166b9ab5eb5466b21 | |
| parent | dd134221243357259b2de68d744319655265fdcc (diff) | |
Add haaretz diff view
| -rw-r--r-- | newsdiff/core/views.py | 28 | ||||
| -rw-r--r-- | newsdiff/templates/haaretz-article.html | 15 | ||||
| -rw-r--r-- | newsdiff/urls.py | 3 |
3 files changed, 44 insertions, 2 deletions
diff --git a/newsdiff/core/views.py b/newsdiff/core/views.py index 91ea44a..971b9df 100644 --- a/newsdiff/core/views.py +++ b/newsdiff/core/views.py @@ -1,3 +1,27 @@ -from django.shortcuts import render +import reversion -# Create your views here. +from django.views.generic import DetailView +from reversion.helpers import generate_patch_html +from reversion.models import Version +from .models import * + + +class HaaretzArticleView(DetailView): + + context_object_name = 'article' + model = HaaretzArticle + slug_field = 'haaretz_id' + slug_url_kwarg = 'id' + + template_name = 'haaretz-article.html' + + def get_context_data(self, **kwargs): + context = super(HaaretzArticleView, self).get_context_data(**kwargs) + versions = reversion.get_for_object(self.object) + version_diffs = [(v1, v2) for v1, v2 in zip(versions, versions[1:])] + print dir(version_diffs[0]) + context['diffs'] = [{ + 'diff': generate_patch_html(v1, v2, 'text', cleanup='efficiency') + } for (v1, v2) in version_diffs] + # context['diffs'] = [(v1, v2) for v1, v2 in zip(versions, versions[1:])] + return context diff --git a/newsdiff/templates/haaretz-article.html b/newsdiff/templates/haaretz-article.html new file mode 100644 index 0000000..90e2778 --- /dev/null +++ b/newsdiff/templates/haaretz-article.html @@ -0,0 +1,15 @@ +<!doctype html5> +<html> + <head> + <title>{{ article.title }}</title> + </head> + <body dir="rtl"> + <h1>{{ article.title }}</h1> + <h2>{{ article.subtitle }}</h2> + <pre style="white-space: pre-wrap;">{{ article.text }}</pre> + {% for diff in diffs %} + <hr> + <pre style="white-space: pre-wrap;">{{ diff.diff|safe }}</pre> + {% endfor %} + </body> +</html> diff --git a/newsdiff/urls.py b/newsdiff/urls.py index 3608768..636c1ee 100644 --- a/newsdiff/urls.py +++ b/newsdiff/urls.py @@ -3,9 +3,12 @@ from django.conf.urls import patterns, include, url from django.conf.urls.static import static from django.contrib import admin +from newsdiff.core.views import * + admin.autodiscover() urlpatterns = patterns('', + url(r'^haaretz/(?P<id>[\d\.]+)$', HaaretzArticleView.as_view()), url(r'^admin/', include(admin.site.urls)), ) |
