summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <yuv.adm@gmail.com>2014-01-27 12:26:10 +0200
committerYuval Adam <yuv.adm@gmail.com>2014-01-27 12:26:10 +0200
commitb35021b110605716b452a99f53d3758318a70d5b (patch)
treeb1b898bc085b7c699ae0da6166b9ab5eb5466b21
parentdd134221243357259b2de68d744319655265fdcc (diff)
Add haaretz diff view
-rw-r--r--newsdiff/core/views.py28
-rw-r--r--newsdiff/templates/haaretz-article.html15
-rw-r--r--newsdiff/urls.py3
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)),
)