123456789101112131415161718192021222324252627282930313233343536 |
- from django.db import models
- from misago.conf import settings
- class ThreadParticipantManager(models.Manager):
- def set_owner(self, thread, user):
- ThreadParticipant.objects.filter(thread=thread, is_owner=True).update(is_owner=False)
- self.remove_participant(thread, user)
- ThreadParticipant.objects.create(thread=thread, user=user, is_owner=True)
- def add_participants(self, thread, users):
- bulk = []
- for user in users:
- bulk.append(ThreadParticipant(thread=thread, user=user, is_owner=False))
- ThreadParticipant.objects.bulk_create(bulk)
- def remove_participant(self, thread, user):
- ThreadParticipant.objects.filter(thread=thread, user=user).delete()
- class ThreadParticipant(models.Model):
- thread = models.ForeignKey(
- 'misago_threads.Thread',
- on_delete=models.CASCADE,
- )
- user = models.ForeignKey(
- settings.AUTH_USER_MODEL,
- on_delete=models.CASCADE,
- )
- is_owner = models.BooleanField(default=False)
- objects = ThreadParticipantManager()
|