thread.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. from django.urls import reverse
  2. from django.utils.translation import ugettext_lazy as _
  3. from misago.categories.models 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('misago:category', kwargs={
  15. 'pk': category.pk,
  16. 'slug': category.slug,
  17. })
  18. else:
  19. return reverse('misago:threads')
  20. def get_category_last_thread_url(self, category):
  21. return reverse('misago:thread', kwargs={
  22. 'slug': category.last_thread_slug,
  23. 'pk': category.last_thread_id
  24. })
  25. def get_category_last_post_url(self, category):
  26. return reverse('misago:thread-last', kwargs={
  27. 'slug': category.last_thread_slug,
  28. 'pk': category.last_thread_id
  29. })
  30. def get_category_read_api_url(self, category):
  31. return reverse('misago:api:category-read', kwargs={
  32. 'pk': category.pk
  33. })
  34. def get_thread_absolute_url(self, thread, page=1):
  35. if page > 1:
  36. return reverse('misago:thread', kwargs={
  37. 'slug': thread.slug,
  38. 'pk': thread.pk,
  39. 'page': page
  40. })
  41. else:
  42. return reverse('misago:thread', kwargs={
  43. 'slug': thread.slug,
  44. 'pk': thread.pk
  45. })
  46. def get_thread_last_post_url(self, thread):
  47. return reverse('misago:thread-last', kwargs={
  48. 'slug': thread.slug,
  49. 'pk': thread.pk
  50. })
  51. def get_thread_new_post_url(self, thread):
  52. return reverse('misago:thread-new', kwargs={
  53. 'slug': thread.slug,
  54. 'pk': thread.pk
  55. })
  56. def get_thread_unapproved_post_url(self, thread):
  57. return reverse('misago:thread-unapproved', kwargs={
  58. 'slug': thread.slug,
  59. 'pk': thread.pk
  60. })
  61. def get_thread_api_url(self, thread):
  62. return reverse('misago:api:thread-detail', kwargs={
  63. 'pk': thread.pk
  64. })
  65. def get_thread_editor_api_url(self, thread):
  66. return reverse('misago:api:thread-post-editor', kwargs={
  67. 'thread_pk': thread.pk
  68. })
  69. def get_thread_merge_api_url(self, thread):
  70. return reverse('misago:api:thread-merge', kwargs={
  71. 'pk': thread.pk
  72. })
  73. def get_thread_poll_api_url(self, thread):
  74. return reverse('misago:api:thread-poll-list', kwargs={
  75. 'thread_pk': thread.pk
  76. })
  77. def get_thread_posts_api_url(self, thread):
  78. return reverse('misago:api:thread-post-list', kwargs={
  79. 'thread_pk': thread.pk
  80. })
  81. def get_poll_api_url(self, poll):
  82. return reverse('misago:api:thread-poll-detail', kwargs={
  83. 'thread_pk': poll.thread_id,
  84. 'pk': poll.pk
  85. })
  86. def get_poll_votes_api_url(self, poll):
  87. return reverse('misago:api:thread-poll-votes', kwargs={
  88. 'thread_pk': poll.thread_id,
  89. 'pk': poll.pk
  90. })
  91. def get_post_merge_api_url(self, thread):
  92. return reverse('misago:api:thread-post-merge', kwargs={
  93. 'thread_pk': thread.pk
  94. })
  95. def get_post_move_api_url(self, thread):
  96. return reverse('misago:api:thread-post-move', kwargs={
  97. 'thread_pk': thread.pk
  98. })
  99. def get_post_split_api_url(self, thread):
  100. return reverse('misago:api:thread-post-split', kwargs={
  101. 'thread_pk': thread.pk
  102. })
  103. def get_post_absolute_url(self, post):
  104. return reverse('misago:thread-post', kwargs={
  105. 'slug': post.thread.slug,
  106. 'pk': post.thread.pk,
  107. 'post': post.pk
  108. })
  109. def get_post_api_url(self, post):
  110. return reverse('misago:api:thread-post-detail', kwargs={
  111. 'thread_pk': post.thread_id,
  112. 'pk': post.pk
  113. })
  114. def get_post_likes_api_url(self, post):
  115. return reverse('misago:api:thread-post-likes', kwargs={
  116. 'thread_pk': post.thread_id,
  117. 'pk': post.pk
  118. })
  119. def get_post_editor_api_url(self, post):
  120. return reverse('misago:api:thread-post-editor', kwargs={
  121. 'thread_pk': post.thread_id,
  122. 'pk': post.pk
  123. })
  124. def get_post_edits_api_url(self, post):
  125. return reverse('misago:api:thread-post-edits', kwargs={
  126. 'thread_pk': post.thread_id,
  127. 'pk': post.pk
  128. })
  129. def get_post_read_api_url(self, post):
  130. return reverse('misago:api:thread-post-read', kwargs={
  131. 'thread_pk': post.thread_id,
  132. 'pk': post.pk
  133. })