From 93fb1da1688ef767c364a4b7e66ad346a925314c Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Mon, 9 Dec 2013 00:23:12 +0200 Subject: Versioning stuff --- newsdiff/core/admin.py | 10 +++++++++- newsdiff/core/tasks.py | 37 ++++++++++++++++++++++++++----------- newsdiff/settings/base.py | 1 + 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' ) -- cgit v1.3.1