|
|
|
|
@ -1678,23 +1678,31 @@ def set_opened(journal, point): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Новое API |
|
|
|
|
class Thread(models.Model): |
|
|
|
|
key = models.CharField(max_length=200) |
|
|
|
|
subscribers = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Подписчики') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Journal(models.Model): |
|
|
|
|
threads = models.ManyToManyField(to=Thread, verbose_name=u'Треды') |
|
|
|
|
thread = models.ForeignKey(to='Thread', verbose_name=u'Тред') |
|
|
|
|
user = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name=u'Инициатор действия') |
|
|
|
|
content_type = models.ForeignKey(to=ContentType) |
|
|
|
|
body = models.TextField(default='') |
|
|
|
|
object_id = models.PositiveIntegerField() |
|
|
|
|
content_object = GenericForeignKey('content_type', 'object_id') |
|
|
|
|
action_type = models.ForeignKey(to='Action') |
|
|
|
|
date = models.DateTimeField(auto_now=True) |
|
|
|
|
|
|
|
|
|
def __str__(self): |
|
|
|
|
return 'Пользователь %s %s' % (self.user.email, self.action_type.name) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Thread(models.Model): |
|
|
|
|
key = models.CharField(max_length=200) |
|
|
|
|
text = models.TextField(verbose_name=u'Описание треда') |
|
|
|
|
subscribers = models.ManyToManyField(to=settings.AUTH_USER_MODEL, verbose_name=u'Подписчики') |
|
|
|
|
children = models.ManyToManyField(to='self', blank=True) |
|
|
|
|
|
|
|
|
|
def get_journals(self, **filter_extra): |
|
|
|
|
threads = [i for i in self.children.all()].append(self) |
|
|
|
|
return Journal.objects.filter(thread_in=threads, **filter_extra).order_by('-date') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Action(models.Model): |
|
|
|
|
name = models.CharField(max_length=255, verbose_name=u'Наименование действия (на английском)') |
|
|
|
|
text = models.TextField(verbose_name=u'Описание действия') |