thread.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. from django.urls import reverse
  2. from django.utils.translation import ugettext_lazy as _
  3. from misago.categories import THREADS_ROOT_NAME
  4. from . import ThreadType
  5. class Thread(ThreadType):
  6. root_name = THREADS_ROOT_NAME
  7. def get_category_name(self, category):
  8. if category.level:
  9. return category.name
  10. else:
  11. return _('None (will become top level category)')
  12. def get_category_absolute_url(self, category):
  13. if category.level:
  14. return reverse(
  15. 'misago:category', kwargs={
  16. 'pk': category.pk,
  17. 'slug': category.slug,
  18. }
  19. )
  20. else:
  21. return reverse('misago:threads')
  22. def get_category_last_thread_url(self, category):
  23. return reverse(
  24. 'misago:thread',
  25. kwargs={'slug': category.last_thread_slug,
  26. 'pk': category.last_thread_id}
  27. )
  28. def get_category_last_post_url(self, category):
  29. return reverse(
  30. 'misago:thread-last',
  31. kwargs={'slug': category.last_thread_slug,
  32. 'pk': category.last_thread_id}
  33. )
  34. def get_category_read_api_url(self, category):
  35. return '{}?category={}'.format(reverse('misago:api:thread-read'), category.pk)
  36. def get_thread_absolute_url(self, thread, page=1):
  37. if page > 1:
  38. return reverse(
  39. 'misago:thread', kwargs={'slug': thread.slug,
  40. 'pk': thread.pk,
  41. 'page': page}
  42. )
  43. else:
  44. return reverse('misago:thread', kwargs={'slug': thread.slug, 'pk': thread.pk})
  45. def get_thread_last_post_url(self, thread):
  46. return reverse('misago:thread-last', kwargs={'slug': thread.slug, 'pk': thread.pk})
  47. def get_thread_new_post_url(self, thread):
  48. return reverse('misago:thread-new', kwargs={'slug': thread.slug, 'pk': thread.pk})
  49. def get_thread_unapproved_post_url(self, thread):
  50. return reverse('misago:thread-unapproved', kwargs={'slug': thread.slug, 'pk': thread.pk})
  51. def get_thread_api_url(self, thread):
  52. return reverse('misago:api:thread-detail', kwargs={'pk': thread.pk})
  53. def get_thread_editor_api_url(self, thread):
  54. return reverse('misago:api:thread-post-editor', kwargs={'thread_pk': thread.pk})
  55. def get_thread_merge_api_url(self, thread):
  56. return reverse('misago:api:thread-merge', kwargs={'pk': thread.pk})
  57. def get_thread_poll_api_url(self, thread):
  58. return reverse('misago:api:thread-poll-list', kwargs={'thread_pk': thread.pk})
  59. def get_thread_posts_api_url(self, thread):
  60. return reverse('misago:api:thread-post-list', kwargs={'thread_pk': thread.pk})
  61. def get_poll_api_url(self, poll):
  62. return reverse(
  63. 'misago:api:thread-poll-detail', kwargs={'thread_pk': poll.thread_id,
  64. 'pk': poll.pk}
  65. )
  66. def get_poll_votes_api_url(self, poll):
  67. return reverse(
  68. 'misago:api:thread-poll-votes', kwargs={'thread_pk': poll.thread_id,
  69. 'pk': poll.pk}
  70. )
  71. def get_post_merge_api_url(self, thread):
  72. return reverse('misago:api:thread-post-merge', kwargs={'thread_pk': thread.pk})
  73. def get_post_move_api_url(self, thread):
  74. return reverse('misago:api:thread-post-move', kwargs={'thread_pk': thread.pk})
  75. def get_post_split_api_url(self, thread):
  76. return reverse('misago:api:thread-post-split', kwargs={'thread_pk': thread.pk})
  77. def get_post_absolute_url(self, post):
  78. return reverse(
  79. 'misago:thread-post',
  80. kwargs={'slug': post.thread.slug,
  81. 'pk': post.thread.pk,
  82. 'post': post.pk}
  83. )
  84. def get_post_api_url(self, post):
  85. return reverse(
  86. 'misago:api:thread-post-detail', kwargs={'thread_pk': post.thread_id,
  87. 'pk': post.pk}
  88. )
  89. def get_post_likes_api_url(self, post):
  90. return reverse(
  91. 'misago:api:thread-post-likes', kwargs={'thread_pk': post.thread_id,
  92. 'pk': post.pk}
  93. )
  94. def get_post_editor_api_url(self, post):
  95. return reverse(
  96. 'misago:api:thread-post-editor', kwargs={'thread_pk': post.thread_id,
  97. 'pk': post.pk}
  98. )
  99. def get_post_edits_api_url(self, post):
  100. return reverse(
  101. 'misago:api:thread-post-edits', kwargs={'thread_pk': post.thread_id,
  102. 'pk': post.pk}
  103. )
  104. def get_post_read_api_url(self, post):
  105. return reverse(
  106. 'misago:api:thread-post-read', kwargs={'thread_pk': post.thread_id,
  107. 'pk': post.pk}
  108. )