thread.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. from django.urls 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_read_api_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={
  62. 'pk': thread.pk
  63. })
  64. def get_thread_editor_api_url(self, thread):
  65. return reverse('misago:api:thread-post-editor', kwargs={
  66. 'thread_pk': thread.pk
  67. })
  68. def get_thread_merge_api_url(self, thread):
  69. return reverse('misago:api:thread-merge', kwargs={
  70. 'pk': thread.pk
  71. })
  72. def get_thread_poll_api_url(self, thread):
  73. return reverse('misago:api:thread-poll-list', kwargs={
  74. 'thread_pk': thread.pk
  75. })
  76. def get_thread_posts_api_url(self, thread):
  77. return reverse('misago:api:thread-post-list', kwargs={
  78. 'thread_pk': thread.pk
  79. })
  80. def get_poll_api_url(self, poll):
  81. return reverse('misago:api:thread-poll-detail', kwargs={
  82. 'thread_pk': poll.thread_id,
  83. 'pk': poll.pk
  84. })
  85. def get_poll_votes_api_url(self, poll):
  86. return reverse('misago:api:thread-poll-votes', kwargs={
  87. 'thread_pk': poll.thread_id,
  88. 'pk': poll.pk
  89. })
  90. def get_post_merge_api_url(self, thread):
  91. return reverse('misago:api:thread-post-merge', kwargs={
  92. 'thread_pk': thread.pk
  93. })
  94. def get_post_move_api_url(self, thread):
  95. return reverse('misago:api:thread-post-move', kwargs={
  96. 'thread_pk': thread.pk
  97. })
  98. def get_post_split_api_url(self, thread):
  99. return reverse('misago:api:thread-post-split', kwargs={
  100. 'thread_pk': thread.pk
  101. })
  102. def get_post_absolute_url(self, post):
  103. return reverse('misago:thread-post', kwargs={
  104. 'slug': post.thread.slug,
  105. 'pk': post.thread.pk,
  106. 'post': post.pk
  107. })
  108. def get_post_api_url(self, post):
  109. return reverse('misago:api:thread-post-detail', kwargs={
  110. 'thread_pk': post.thread_id,
  111. 'pk': post.pk
  112. })
  113. def get_post_likes_api_url(self, post):
  114. return reverse('misago:api:thread-post-likes', kwargs={
  115. 'thread_pk': post.thread_id,
  116. 'pk': post.pk
  117. })
  118. def get_post_editor_api_url(self, post):
  119. return reverse('misago:api:thread-post-editor', kwargs={
  120. 'thread_pk': post.thread_id,
  121. 'pk': post.pk
  122. })
  123. def get_post_edits_api_url(self, post):
  124. return reverse('misago:api:thread-post-edits', kwargs={
  125. 'thread_pk': post.thread_id,
  126. 'pk': post.pk
  127. })
  128. def get_post_read_api_url(self, post):
  129. return reverse('misago:api:thread-post-read', kwargs={
  130. 'thread_pk': post.thread_id,
  131. 'pk': post.pk
  132. })