thread.py 4.7 KB

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