Include generated notes in books stream

This commit is contained in:
Mouse Reeve 2021-08-07 07:56:30 -07:00
parent d7a79573c4
commit 38f614a526

View file

@ -358,25 +358,39 @@ def add_statuses_on_shelve(sender, instance, *args, **kwargs):
"""update books stream when user shelves a book""" """update books stream when user shelves a book"""
if not instance.user.local: if not instance.user.local:
return return
# check if the book is already on the user's shelves book = None
if models.ShelfBook.objects.filter( if hasattr(instance, "book"):
user=instance.user, book__in=instance.book.parent_work.editions.all() book = instance.book
).exists(): elif instance.mention_books.exists():
book = instance.mention_books.first()
if not book:
return return
BooksStream().add_book_statuses(instance.user, instance.book) # check if the book is already on the user's shelves
editions = book.parent_work.editions.all()
if models.ShelfBook.objects.filter(user=instance.user, book__in=editions).exists():
return
BooksStream().add_book_statuses(instance.user, book)
@receiver(signals.post_delete, sender=models.ShelfBook) @receiver(signals.post_delete, sender=models.ShelfBook)
# pylint: disable=unused-argument # pylint: disable=unused-argument
def remove_statuses_on_shelve(sender, instance, *args, **kwargs): def remove_statuses_on_unshelve(sender, instance, *args, **kwargs):
"""update books stream when user unshelves a book""" """update books stream when user unshelves a book"""
if not instance.user.local: if not instance.user.local:
return return
book = None
if hasattr(instance, "book"):
book = instance.book
elif instance.mention_books.exists():
book = instance.mention_books.first()
if not book:
return
# check if the book is actually unshelved, not just moved # check if the book is actually unshelved, not just moved
if models.ShelfBook.objects.filter( editions = book.parent_work.editions.all()
user=instance.user, book__in=instance.book.parent_work.editions.all() if models.ShelfBook.objects.filter(user=instance.user, book__in=editions).exists():
).exists():
return return
BooksStream().remove_book_statuses(instance.user, instance.book) BooksStream().remove_book_statuses(instance.user, instance.book)