summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <yuv.adm@gmail.com>2014-01-30 13:09:16 +0200
committerYuval Adam <yuv.adm@gmail.com>2014-01-30 13:09:16 +0200
commit52d55a262db9dc2e629d7fd9284e7e48da52ec51 (patch)
treefc39602d5a00e9a66dd0f2dbe6a5ed7d1d03f106
parent096c48dc08b7e12744d22ccf514bbb17302a31e2 (diff)
Add eager article fetching on 404
-rw-r--r--newsdiff/core/views.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/newsdiff/core/views.py b/newsdiff/core/views.py
index 099631e..ad8f0cf 100644
--- a/newsdiff/core/views.py
+++ b/newsdiff/core/views.py
@@ -1,10 +1,12 @@
import reversion
from django.contrib.contenttypes.models import ContentType
+from django.http import Http404
from django.views.generic import DetailView, ListView
from reversion.helpers import generate_patch_html
from reversion.models import Version
from .models import *
+from .tasks import process_haaretz_article
class ArticleView(DetailView):
@@ -30,6 +32,17 @@ class HaaretzArticleView(ArticleView):
model = HaaretzArticle
slug_field = 'haaretz_id'
+ def get_object(self, queryset=None):
+ try:
+ return super(HaaretzArticleView, self).get_object(queryset=queryset)
+ except Http404 as e:
+ if not self.request.user.is_authenticated():
+ raise e
+ else:
+ id = self.kwargs.get(self.slug_url_kwarg, None)
+ process_haaretz_article.delay('http://www.haaretz.co.il/{}'.format(id))
+ raise Http404('Attempting to fetch haaretz article')
+
class YnetArticleView(ArticleView):
model = YnetArticle