models.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from django.db import models
  2. from mptt.managers import TreeManager
  3. from mptt.models import MPTTModel, TreeForeignKey
  4. class ForumManager(TreeManager):
  5. pass
  6. class Forum(MPTTModel):
  7. parent = TreeForeignKey(
  8. 'self', null=True, blank=True, related_name='children')
  9. special_role = models.CharField(max_length=255, null=True, blank=True)
  10. role = models.CharField(max_length=255, null=True, blank=True)
  11. name = models.CharField(max_length=255)
  12. slug = models.SlugField(max_length=255)
  13. description = models.TextField(null=True, blank=True)
  14. description_preparsed = models.TextField(null=True, blank=True)
  15. is_closed = models.BooleanField(default=False)
  16. redirect_url = models.CharField(max_length=255, null=True, blank=True)
  17. redirects_count = models.PositiveIntegerField(default=0)
  18. threads = models.PositiveIntegerField(default=0)
  19. threads_count = models.PositiveIntegerField(default=0)
  20. posts = models.PositiveIntegerField(default=0)
  21. posts_count = models.PositiveIntegerField(default=0)
  22. prune_started_after = models.PositiveIntegerField(default=0)
  23. prune_replied_after = models.PositiveIntegerField(default=0)
  24. archive_pruned_in = models.ForeignKey(
  25. 'self',
  26. related_name='pruned_archive',
  27. null=True,
  28. blank=True,
  29. on_delete=models.SET_NULL)
  30. css_class = models.CharField(max_length=255, null=True, blank=True)
  31. objects = ForumManager()