Fixing up notifications.

This commit is contained in:
Adam Kelly
2020-04-22 12:43:10 +01:00
parent 0bf73fef24
commit 22b2a95fd3
6 changed files with 80 additions and 33 deletions

View File

@ -5,7 +5,7 @@ from requests import HTTPError
from fedireads import outgoing
from fedireads.tasks import app
from fedireads.models import ImportJob, ImportItem
from fedireads.status import create_notification
# TODO: remove or notify about this in the UI
MAX_ENTRIES = 20
@ -25,32 +25,34 @@ def start_import(job):
@app.task
def import_data(job_id):
job = ImportJob.objects.get(id=job_id)
user = job.user
results = []
reviews = []
for item in job.items.all():
try:
item.resolve()
except HTTPError:
pass
if item.book:
item.save()
results.append(item)
if item.rating or item.review:
reviews.append(item)
else:
item.fail_reason = "Could not match book on OpenLibrary"
item.save()
try:
results = []
reviews = []
for item in job.items.all():
try:
item.resolve()
except HTTPError:
pass
if item.book:
item.save()
results.append(item)
if item.rating or item.review:
reviews.append(item)
else:
item.fail_reason = "Could not match book on OpenLibrary"
item.save()
outgoing.handle_import_books(user, results)
for item in reviews:
review_title = "Review of {!r} on Goodreads".format(
item.book.title,
) if item.review else ""
outgoing.handle_review(
user,
item.book,
review_title,
item.review,
item.rating,
)
outgoing.handle_import_books(job.user, results)
for item in reviews:
review_title = "Review of {!r} on Goodreads".format(
item.book.title,
) if item.review else ""
outgoing.handle_review(
job.user,
item.book,
review_title,
item.review,
item.rating,
)
finally:
create_notification(job.user, 'IMPORT', related_import=job)