thread.py 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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("misago:thread", kwargs={"slug": thread.slug, "pk": thread.pk})
  39. def get_thread_last_post_url(self, thread):
  40. return reverse(
  41. "misago:thread-last", kwargs={"slug": thread.slug, "pk": thread.pk}
  42. )
  43. def get_thread_new_post_url(self, thread):
  44. return reverse(
  45. "misago:thread-new", kwargs={"slug": thread.slug, "pk": thread.pk}
  46. )
  47. def get_thread_best_answer_url(self, thread):
  48. return reverse(
  49. "misago:thread-best-answer", kwargs={"slug": thread.slug, "pk": thread.pk}
  50. )
  51. def get_thread_unapproved_post_url(self, thread):
  52. return reverse(
  53. "misago:thread-unapproved", kwargs={"slug": thread.slug, "pk": thread.pk}
  54. )
  55. def get_thread_api_url(self, thread):
  56. return reverse("misago:api:thread-detail", kwargs={"pk": thread.pk})
  57. def get_thread_editor_api_url(self, thread):
  58. return reverse("misago:api:thread-post-editor", kwargs={"thread_pk": thread.pk})
  59. def get_thread_merge_api_url(self, thread):
  60. return reverse("misago:api:thread-merge", kwargs={"pk": thread.pk})
  61. def get_thread_poll_api_url(self, thread):
  62. return reverse("misago:api:thread-poll-list", kwargs={"thread_pk": thread.pk})
  63. def get_thread_posts_api_url(self, thread):
  64. return reverse("misago:api:thread-post-list", kwargs={"thread_pk": thread.pk})
  65. def get_poll_api_url(self, poll):
  66. return reverse(
  67. "misago:api:thread-poll-detail",
  68. kwargs={"thread_pk": poll.thread_id, "pk": poll.pk},
  69. )
  70. def get_poll_votes_api_url(self, poll):
  71. return reverse(
  72. "misago:api:thread-poll-votes",
  73. kwargs={"thread_pk": poll.thread_id, "pk": poll.pk},
  74. )
  75. def get_post_merge_api_url(self, thread):
  76. return reverse("misago:api:thread-post-merge", kwargs={"thread_pk": thread.pk})
  77. def get_post_move_api_url(self, thread):
  78. return reverse("misago:api:thread-post-move", kwargs={"thread_pk": thread.pk})
  79. def get_post_split_api_url(self, thread):
  80. return reverse("misago:api:thread-post-split", kwargs={"thread_pk": thread.pk})
  81. def get_post_absolute_url(self, post):
  82. return reverse(
  83. "misago:thread-post",
  84. kwargs={"slug": post.thread.slug, "pk": post.thread.pk, "post": post.pk},
  85. )
  86. def get_post_api_url(self, post):
  87. return reverse(
  88. "misago:api:thread-post-detail",
  89. kwargs={"thread_pk": post.thread_id, "pk": post.pk},
  90. )
  91. def get_post_likes_api_url(self, post):
  92. return reverse(
  93. "misago:api:thread-post-likes",
  94. kwargs={"thread_pk": post.thread_id, "pk": post.pk},
  95. )
  96. def get_post_editor_api_url(self, post):
  97. return reverse(
  98. "misago:api:thread-post-editor",
  99. kwargs={"thread_pk": post.thread_id, "pk": post.pk},
  100. )
  101. def get_post_edits_api_url(self, post):
  102. return reverse(
  103. "misago:api:thread-post-edits",
  104. kwargs={"thread_pk": post.thread_id, "pk": post.pk},
  105. )
  106. def get_post_read_api_url(self, post):
  107. return reverse(
  108. "misago:api:thread-post-read",
  109. kwargs={"thread_pk": post.thread_id, "pk": post.pk},
  110. )