123456789101112131415161718192021222324252627282930313233 |
- from django.dispatch import Signal, receiver
- from misago.categories.signals import move_category_content
- from misago.threads.signals import move_thread
- all_read = Signal()
- category_read = Signal(providing_args=["category"])
- thread_tracked = Signal(providing_args=["thread"])
- thread_read = Signal(providing_args=["thread"])
- """
- Signal handlers
- """
- @receiver(move_category_content)
- def delete_category_tracker(sender, **kwargs):
- sender.categoryread_set.all().delete()
- sender.threadread_set.all().delete()
- @receiver(move_thread)
- def delete_thread_tracker(sender, **kwargs):
- sender.threadread_set.all().delete()
- @receiver(thread_read)
- def decrease_unread_private_count(sender, **kwargs):
- user = sender
- thread = kwargs['thread']
- if user.pk != thread.starter_id and user.unread_private_threads:
- user.unread_private_threads -= 1
- user.save(update_fields=['unread_private_threads'])
|