thread.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. from django.core.urlresolvers import reverse
  2. from django.utils.translation import ugettext_lazy as _
  3. from . import ThreadType
  4. class Thread(ThreadType):
  5. root_name = 'root_category'
  6. def get_category_name(self, category):
  7. if category.level:
  8. return category.name
  9. else:
  10. return _('None (will become top level category)')
  11. def get_category_absolute_url(self, category):
  12. if category.level:
  13. return reverse('misago:category', kwargs={
  14. 'pk': category.pk,
  15. 'slug': category.slug,
  16. })
  17. else:
  18. return reverse('misago:threads')
  19. def get_category_last_thread_url(self, category):
  20. return reverse('misago:thread', kwargs={
  21. 'slug': category.last_thread_slug,
  22. 'pk': category.last_thread_id
  23. })
  24. def get_category_last_post_url(self, category):
  25. return reverse('misago:thread-last', kwargs={
  26. 'slug': category.last_thread_slug,
  27. 'pk': category.last_thread_id
  28. })
  29. def get_category_api_read_url(self, category):
  30. return reverse('misago:api:category-read', kwargs={
  31. 'pk': category.pk
  32. })
  33. def get_thread_absolute_url(self, thread, page=1):
  34. if page > 1:
  35. return reverse('misago:thread', kwargs={
  36. 'slug': thread.slug,
  37. 'pk': thread.pk,
  38. 'page': page
  39. })
  40. else:
  41. return reverse('misago:thread', kwargs={
  42. 'slug': thread.slug,
  43. 'pk': thread.pk
  44. })
  45. def get_thread_last_post_url(self, thread):
  46. return reverse('misago:thread-last', kwargs={
  47. 'slug': thread.slug,
  48. 'pk': thread.pk
  49. })
  50. def get_thread_new_post_url(self, thread):
  51. return reverse('misago:thread-new', kwargs={
  52. 'slug': thread.slug,
  53. 'pk': thread.pk
  54. })
  55. def get_thread_unapproved_post_url(self, thread):
  56. return reverse('misago:thread-unapproved', kwargs={
  57. 'slug': thread.slug,
  58. 'pk': thread.pk
  59. })
  60. def get_thread_api_url(self, thread):
  61. return reverse('misago:api:thread-detail', kwargs={'pk': thread.pk})
  62. def get_post_absolute_url(self, post):
  63. return reverse('misago:thread-post', kwargs={
  64. 'slug': post.thread.slug,
  65. 'pk': post.thread.pk,
  66. 'post': post.pk
  67. })
  68. def get_post_api_url(self, post):
  69. return reverse('misago:api:thread-post-detail', kwargs={
  70. 'thread_pk': post.thread_id,
  71. 'pk': post.pk
  72. })