signals.py 731 B

1234567891011121314151617181920212223242526272829303132
  1. from django.dispatch import receiver, Signal
  2. from misago.forums.signals import move_forum_content
  3. from misago.threads.signals import move_thread
  4. all_read = Signal()
  5. forum_read = Signal(providing_args=["forum"])
  6. thread_read = Signal(providing_args=["thread"])
  7. """
  8. Signal handlers
  9. """
  10. @receiver(move_forum_content)
  11. def delete_forum_tracker(sender, **kwargs):
  12. sender.forumread_set.all().delete()
  13. sender.threadread_set.all().delete()
  14. @receiver(move_thread)
  15. def delete_thread_tracker(sender, **kwargs):
  16. sender.threadread_set.all().delete()
  17. @receiver(thread_read)
  18. def decrease_unread_count(sender, **kwargs):
  19. user = sender
  20. thread = kwargs['thread']
  21. if thread.is_new:
  22. user.new_threads.decrease()