summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <yuv.adm@gmail.com>2013-12-09 00:23:12 +0200
committerYuval Adam <yuv.adm@gmail.com>2013-12-09 00:23:12 +0200
commit93fb1da1688ef767c364a4b7e66ad346a925314c (patch)
tree90db802824f9cc8bf1b3ee1eb2f8e68a96a01c6b
parent47a78fda1269c51ec28dc851946baaf67fa6b869 (diff)
Versioning stuff
-rw-r--r--newsdiff/core/admin.py10
-rw-r--r--newsdiff/core/tasks.py37
-rw-r--r--newsdiff/settings/base.py1
3 files changed, 36 insertions, 12 deletions
diff --git a/newsdiff/core/admin.py b/newsdiff/core/admin.py
index ab4b576..74b457d 100644
--- a/newsdiff/core/admin.py
+++ b/newsdiff/core/admin.py
@@ -1,6 +1,14 @@
+import reversion
+
from django.contrib import admin
+
from .models import *
+
+class HaaretzArticleAdmin(reversion.VersionAdmin):
+ pass
+
+admin.site.register(HaaretzArticle, HaaretzArticleAdmin)
admin.site.register(NewsDiffUser)
-admin.site.register(HaaretzArticle)
admin.site.register(HaaretzImage)
+
diff --git a/newsdiff/core/tasks.py b/newsdiff/core/tasks.py
index 1a3cf1c..d22de2b 100644
--- a/newsdiff/core/tasks.py
+++ b/newsdiff/core/tasks.py
@@ -26,16 +26,31 @@ def get_haaretz_article(url):
article_body = soup.find('div', id='article-box').find_all('p')
article_text = '\n\n'.join([p.text.strip() for p in article_body])
- article = HaaretzArticle(url=url, title=title, subtitle=subtitle, text=article_text, date=article_date)
- article.save()
+ existing_article = HaaretzArticle.objects.get(url=url)
+ if existing_article:
+ changed = False
+ if title != existing_article.title:
+ existing_article.title = title
+ changed = True
+ if subtitle != existing_article.subtitle:
+ existing_article.subtitle = subtitle
+ changed = True
+ if article_text != existing_article.text:
+ existing_article.text = text
+ changed = True
+ if changed:
+ existing_article.save()
+ else:
+ article = HaaretzArticle(url=url, title=title, subtitle=subtitle, text=article_text, date=article_date)
+ article.save()
- images = soup.find('div', id='article-box').find_all('div', class_='inArticleHoldImage')
- for image in images:
- img = image.find('img')
- img_url = 'http://www.haaretz.co.il{}'.format(img['src'].split('_gen')[0])
- caption = img.title
+ images = soup.find('div', id='article-box').find_all('div', class_='inArticleHoldImage')
+ for image in images:
+ img = image.find('img')
+ img_url = 'http://www.haaretz.co.il{}'.format(img['src'].split('_gen')[0])
+ caption = img.title
- name, image_file = get_image_from_url(img_url)
- article_image = HaaretzImage(article=article, origin_url=url, caption=caption)
- article_image.image.save(name, image_file)
- article_image.save()
+ name, image_file = get_image_from_url(img_url)
+ article_image = HaaretzImage(article=article, origin_url=url, caption=caption)
+ article_image.image.save(name, image_file)
+ article_image.save()
diff --git a/newsdiff/settings/base.py b/newsdiff/settings/base.py
index 75ab332..9f372d4 100644
--- a/newsdiff/settings/base.py
+++ b/newsdiff/settings/base.py
@@ -83,6 +83,7 @@ INSTALLED_APPS = (
'south',
'storages',
'celery',
+ 'reversion',
'newsdiff.core'
)