diff --git a/fedireads/goodreads_import.py b/fedireads/goodreads_import.py index fb95f3fcb..7d4abdd5e 100644 --- a/fedireads/goodreads_import.py +++ b/fedireads/goodreads_import.py @@ -42,7 +42,7 @@ def import_data(job_id): item.fail_reason = "Could not match book on OpenLibrary" item.save() - outgoing.handle_import_books(job.user, results) + status = outgoing.handle_import_books(job.user, results) for item in reviews: review_title = "Review of {!r} on Goodreads".format( item.book.title, @@ -54,5 +54,8 @@ def import_data(job_id): item.review, item.rating, ) + if status: + job.import_status = status + job.save() finally: create_notification(job.user, 'IMPORT', related_import=job) diff --git a/fedireads/migrations/0034_importjob_import_status.py b/fedireads/migrations/0034_importjob_import_status.py new file mode 100644 index 000000000..94cc65f69 --- /dev/null +++ b/fedireads/migrations/0034_importjob_import_status.py @@ -0,0 +1,19 @@ +# Generated by Django 3.0.3 on 2020-04-22 13:12 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('fedireads', '0033_auto_20200422_1249'), + ] + + operations = [ + migrations.AddField( + model_name='importjob', + name='import_status', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='fedireads.Status'), + ), + ] diff --git a/fedireads/models/import_job.py b/fedireads/models/import_job.py index b979c0121..fcb216548 100644 --- a/fedireads/models/import_job.py +++ b/fedireads/models/import_job.py @@ -36,6 +36,8 @@ class ImportJob(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) created_date = models.DateTimeField(default=timezone.now) task_id = models.CharField(max_length=100, null=True) + import_status = models.ForeignKey( + 'Status', null=True, on_delete=models.PROTECT) class ImportItem(models.Model): job = models.ForeignKey( diff --git a/fedireads/outgoing.py b/fedireads/outgoing.py index 975a5fe6f..9b44057cc 100644 --- a/fedireads/outgoing.py +++ b/fedireads/outgoing.py @@ -158,7 +158,7 @@ def handle_shelve(user, book, shelf): activity = activitypub.get_status(status) create_activity = activitypub.get_create(user, activity) - broadcast(user, create_activity, recipients) + broadcast(user, create_activity) def handle_unshelve(user, book, shelf): @@ -206,6 +206,7 @@ def handle_import_books(user, items): create_activity = activitypub.get_create( user, activitypub.get_status(status)) broadcast(user, create_activity) + return status def handle_rate(user, book, rating): diff --git a/fedireads/templates/import_status.html b/fedireads/templates/import_status.html index dada9951b..34abeb8fa 100644 --- a/fedireads/templates/import_status.html +++ b/fedireads/templates/import_status.html @@ -16,6 +16,10 @@

{{ task.info }} {% endif %} + + {% if job.import_status %} + {% include 'snippets/status.html' with status=job.import_status %} + {% endif %} {% else %} Import still in progress.