• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

rafalp / Misago / 16402849828

20 Jul 2025 06:18PM UTC coverage: 96.942% (-0.3%) from 97.274%
16402849828

push

github

web-flow
New polls (#1954)

4236 of 4323 new or added lines in 133 files covered. (97.99%)

288 existing lines in 17 files now uncovered.

76945 of 79372 relevant lines covered (96.94%)

0.97 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.75
/misago/threads/threadtypes/thread.py
1
from django.urls import reverse
1✔
2
from django.utils.translation import pgettext_lazy
1✔
3

4
from . import ThreadType
1✔
5
from ...categories import THREADS_ROOT_NAME
1✔
6

7

8
class Thread(ThreadType):
1✔
9
    root_name = THREADS_ROOT_NAME
1✔
10

11
    def get_category_name(self, category):
1✔
12
        if category.level:
1✔
13
            return category.name
1✔
14
        return pgettext_lazy(
1✔
15
            "threads root category name", "None (will become top level category)"
16
        )
17

18
    def get_category_absolute_url(self, category):
1✔
19
        if category.level:
1✔
20
            return reverse(
1✔
21
                "misago:category", kwargs={"id": category.id, "slug": category.slug}
22
            )
23

24
        return reverse("misago:threads")
1✔
25

26
    def get_category_last_thread_url(self, category):
1✔
27
        return reverse(
1✔
28
            "misago:thread",
29
            kwargs={"slug": category.last_thread_slug, "id": category.last_thread_id},
30
        )
31

32
    def get_category_last_thread_new_url(self, category):
1✔
33
        return reverse(
1✔
34
            "misago:thread-unread-post",
35
            kwargs={"slug": category.last_thread_slug, "id": category.last_thread_id},
36
        )
37

38
    def get_category_last_post_url(self, category):
1✔
39
        return reverse(
1✔
40
            "misago:thread-last-post",
41
            kwargs={"slug": category.last_thread_slug, "id": category.last_thread_id},
42
        )
43

44
    def get_thread_absolute_url(self, thread, page=1):
1✔
45
        if page > 1:
1✔
46
            return reverse(
×
47
                "misago:thread",
48
                kwargs={"slug": thread.slug, "id": thread.id, "page": page},
49
            )
50

51
        return reverse("misago:thread", kwargs={"slug": thread.slug, "id": thread.id})
1✔
52

53
    def get_thread_last_post_url(self, thread):
1✔
54
        return reverse(
1✔
55
            "misago:thread-last-post", kwargs={"slug": thread.slug, "id": thread.pk}
56
        )
57

58
    def get_thread_new_post_url(self, thread):
1✔
59
        return reverse(
1✔
60
            "misago:thread-unread-post", kwargs={"slug": thread.slug, "id": thread.pk}
61
        )
62

63
    def get_thread_best_answer_url(self, thread):
1✔
64
        return reverse(
1✔
65
            "misago:thread-solution-post", kwargs={"slug": thread.slug, "id": thread.pk}
66
        )
67

68
    def get_thread_unapproved_post_url(self, thread):
1✔
69
        return reverse(
1✔
70
            "misago:thread-unapproved-post",
71
            kwargs={"slug": thread.slug, "id": thread.pk},
72
        )
73

74
    def get_thread_api_url(self, thread):
1✔
75
        return reverse("misago:api:thread-detail", kwargs={"pk": thread.pk})
1✔
76

77
    def get_thread_editor_api_url(self, thread):
1✔
78
        return reverse("misago:api:thread-post-editor", kwargs={"thread_pk": thread.pk})
1✔
79

80
    def get_thread_merge_api_url(self, thread):
1✔
81
        return reverse("misago:api:thread-merge", kwargs={"pk": thread.pk})
1✔
82

83
    def get_thread_poll_api_url(self, thread):
1✔
84
        return reverse("misago:api:thread-poll-list", kwargs={"thread_pk": thread.pk})
1✔
85

86
    def get_thread_watch_api_url(self, thread):
1✔
87
        return reverse("misago:apiv2:thread-watch", kwargs={"thread_id": thread.id})
1✔
88

89
    def get_thread_posts_api_url(self, thread):
1✔
90
        return reverse("misago:api:thread-post-list", kwargs={"thread_pk": thread.pk})
1✔
91

92
    def get_poll_api_url(self, poll):
1✔
UNCOV
93
        return reverse(
×
94
            "misago:api:thread-poll-detail",
95
            kwargs={"thread_pk": poll.thread_id, "pk": poll.pk},
96
        )
97

98
    def get_poll_votes_api_url(self, poll):
1✔
UNCOV
99
        return reverse(
×
100
            "misago:api:thread-poll-votes",
101
            kwargs={"thread_pk": poll.thread_id, "pk": poll.pk},
102
        )
103

104
    def get_post_merge_api_url(self, thread):
1✔
105
        return reverse("misago:api:thread-post-merge", kwargs={"thread_pk": thread.pk})
1✔
106

107
    def get_post_move_api_url(self, thread):
1✔
108
        return reverse("misago:api:thread-post-move", kwargs={"thread_pk": thread.pk})
1✔
109

110
    def get_post_split_api_url(self, thread):
1✔
111
        return reverse("misago:api:thread-post-split", kwargs={"thread_pk": thread.pk})
1✔
112

113
    def get_post_absolute_url(self, post):
1✔
114
        return reverse(
×
115
            "misago:thread-post",
116
            kwargs={"slug": post.thread.slug, "pk": post.thread.pk, "post": post.pk},
117
        )
118

119
    def get_post_api_url(self, post):
1✔
120
        return reverse(
1✔
121
            "misago:api:thread-post-detail",
122
            kwargs={"thread_pk": post.thread_id, "pk": post.pk},
123
        )
124

125
    def get_post_likes_api_url(self, post):
1✔
126
        return reverse(
1✔
127
            "misago:api:thread-post-likes",
128
            kwargs={"thread_pk": post.thread_id, "pk": post.pk},
129
        )
130

131
    def get_post_editor_api_url(self, post):
1✔
132
        return reverse(
1✔
133
            "misago:api:thread-post-editor",
134
            kwargs={"thread_pk": post.thread_id, "pk": post.pk},
135
        )
136

137
    def get_post_edits_api_url(self, post):
1✔
138
        return reverse(
1✔
139
            "misago:api:thread-post-edits",
140
            kwargs={"thread_pk": post.thread_id, "pk": post.pk},
141
        )
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc