signals.py 711 B

12345678910111213141516171819202122232425262728293031
  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. forum_read = Signal(providing_args=["forum"])
  5. thread_read = Signal(providing_args=["thread"])
  6. """
  7. Signal handlers
  8. """
  9. @receiver(move_forum_content)
  10. def delete_forum_tracker(sender, **kwargs):
  11. sender.forumread_set.all().delete()
  12. sender.threadread_set.all().delete()
  13. @receiver(move_thread)
  14. def delete_thread_tracker(sender, **kwargs):
  15. sender.threadread_set.all().delete()
  16. @receiver(thread_read)
  17. def decrease_unread_count(sender, **kwargs):
  18. user = sender
  19. thread = kwargs['thread']
  20. if thread.is_new:
  21. user.new_threads.decrease()