thread.py 4.8 KB

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