class Thread(models.Model, LabelManager): category = models.ForeignKey(Category, db_index=True) name = models.CharField(maxlength=255) author = models.ForeignKey(User, db_index=True, editable=False) lang = models.CharField(maxlength=2, choices=settings.LANGUAGES) post_date = models.DateTimeField(auto_now_add=True) last_author = models.ForeignKey(User, related_name="last_update_author", editable=False) last_post_date = models.DateTimeField(auto_now=True) total_posts = models.IntegerField(default=1, blank=True, editable=False) total_posts_today = models.IntegerField(default=1, blank=True, editable=False) visible = models.BooleanField(default=True, help_text='Turn this off to soft delete a thread') sticky = models.BooleanField(default=False, help_text='Is this thread stickied') open = models.BooleanField(default=True, help_text='Is this thread open for posting') labels = models.TextField(null=True, blank=True, editable=False) def __str__(self): return self.name def get_absolute_url(self): return "/%s/forums/details/%d/%s/" % (threadlocals.get_current_lang(), self.id, safe_name(self.name)) def get_lastreply_url(self): return "/%s/forums/latest-post/%d/" % (threadlocals.get_current_lang(), self.id) def get_sticky_url(self): return "/%s/forums/sticky/%d/" % (threadlocals.get_current_lang(), self.id) def get_unsticky_url(self): return "/%s/forums/unsticky/%d/" % (threadlocals.get_current_lang(), self.id) def get_open_url(self): return "/%s/forums/open/%d/" % (threadlocals.get_current_lang(), self.id) def get_close_url(self): return "/%s/forums/close/%d/" % (threadlocals.get_current_lang(), self.id) def get_hide_url(self): return "/%s/forums/hide/%d/" % (threadlocals.get_current_lang(), self.id) def get_show_url(self): return "/%s/forums/show/%d/" % (threadlocals.get_current_lang(), self.id) class Admin: list_display = ('name', 'category', 'post_date', 'total_posts', 'total_posts_today', 'visible', 'sticky', 'open',) list_filter = ('visible', 'sticky', 'open', 'post_date', 'category', ) search_fields = ['name',] class Meta: verbose_name = _('thread') verbose_name_plural = _('threads') class History: pass