forked from mirrors/bookwyrm
Remove follow suggestion on request
This commit is contained in:
commit
15105bda4f
4 changed files with 31 additions and 0 deletions
|
@ -44,6 +44,7 @@ class BookDataModel(ObjectMixin, BookWyrmModel):
|
|||
bnf_id = fields.CharField( # Bibliothèque nationale de France
|
||||
max_length=255, blank=True, null=True, deduplication_field=True
|
||||
)
|
||||
links = fields.ManyToManyField("Link")
|
||||
search_vector = SearchVectorField(null=True)
|
||||
|
||||
last_edited_by = fields.ForeignKey(
|
||||
|
@ -104,6 +105,7 @@ class Book(BookDataModel):
|
|||
|
||||
objects = InheritanceManager()
|
||||
field_tracker = FieldTracker(fields=["authors", "title", "subtitle", "cover"])
|
||||
file_links = fields.ManyToManyField("FileLink")
|
||||
|
||||
if ENABLE_THUMBNAIL_GENERATION:
|
||||
cover_bw_book_xsmall_webp = ImageSpecField(
|
||||
|
|
17
bookwyrm/models/link.py
Normal file
17
bookwyrm/models/link.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
""" outlink data """
|
||||
from .activitypub_mixin import CollectionItemMixin
|
||||
from .base_model import BookWyrmModel
|
||||
from . import fields
|
||||
|
||||
class Link(CollectionItemMixin, BookWyrmModel):
|
||||
"""a link to a website"""
|
||||
|
||||
url = fields.CharField(max_length=255)
|
||||
name = fields.CharField(max_length=255)
|
||||
|
||||
|
||||
class FileLink(Link):
|
||||
"""a link to a file"""
|
||||
|
||||
filetype = fields.CharField(max_length=5)
|
||||
filetype_description = fields.CharField(max_length=100)
|
|
@ -148,6 +148,17 @@ def update_suggestions_on_follow(sender, instance, created, *args, **kwargs):
|
|||
rerank_user_task.delay(instance.user_object.id, update_only=False)
|
||||
|
||||
|
||||
@receiver(signals.post_save, sender=models.UserFollowRequest)
|
||||
# pylint: disable=unused-argument
|
||||
def update_suggestions_on_follow_request(sender, instance, created, *args, **kwargs):
|
||||
"""remove a follow from the recs and update the ranks"""
|
||||
if not created or not instance.user_object.discoverable:
|
||||
return
|
||||
|
||||
if instance.user_subject.local:
|
||||
remove_suggestion_task.delay(instance.user_subject.id, instance.user_object.id)
|
||||
|
||||
|
||||
@receiver(signals.post_save, sender=models.UserBlocks)
|
||||
# pylint: disable=unused-argument
|
||||
def update_suggestions_on_block(sender, instance, *args, **kwargs):
|
||||
|
|
|
@ -48,6 +48,7 @@ from .isbn import Isbn
|
|||
from .landing import About, Home, Landing
|
||||
from .list import Lists, SavedLists, List, Curate, UserLists
|
||||
from .list import save_list, unsave_list, delete_list
|
||||
from .link import Link, FileLink
|
||||
from .login import Login, Logout
|
||||
from .notifications import Notifications
|
||||
from .outbox import Outbox
|
||||
|
|
Loading…
Reference in a new issue