123456789101112131415161718192021222324252627282930313233 |
- from django.db import models
- from misago.forums.signals import move_forum_content
- from misago.threads.signals import move_thread, merge_thread
- class ThreadWatch(models.Model):
- user = models.ForeignKey('users.User')
- forum = models.ForeignKey('forums.Forum')
- thread = models.ForeignKey('threads.Thread')
- last_read = models.DateTimeField()
- email = models.BooleanField(default=False)
- deleted = False
-
- def save(self, *args, **kwargs):
- if not self.deleted:
- super(ThreadWatch, self).save(*args, **kwargs)
-
- def move_forum_content_handler(sender, **kwargs):
- ThreadWatch.objects.filter(forum=sender).update(forum=kwargs['move_to'])
- move_forum_content.connect(move_forum_content_handler, dispatch_uid="move_forum_threads_watchers")
- def move_thread_handler(sender, **kwargs):
- ThreadWatch.objects.filter(forum=sender.forum_pk).update(forum=kwargs['move_to'])
- move_thread.connect(move_thread_handler, dispatch_uid="move_thread_watchers")
- def merge_thread_handler(sender, **kwargs):
- ThreadWatch.objects.filter(thread=sender).delete()
- merge_thread.connect(merge_thread_handler, dispatch_uid="merge_threads_watchers")
|