Show More
@@ -19,6 +19,8 b" SETTING_LAST_NOTIFICATION_ID = 'last_not" | |||||
19 | SETTING_IMAGE_VIEWER = 'image_viewer' |
|
19 | SETTING_IMAGE_VIEWER = 'image_viewer' | |
20 | SETTING_TRIPCODE = 'tripcode' |
|
20 | SETTING_TRIPCODE = 'tripcode' | |
21 |
|
21 | |||
|
22 | FAV_THREAD_NO_UPDATES = -1 | |||
|
23 | ||||
22 | DEFAULT_THEME = 'md' |
|
24 | DEFAULT_THEME = 'md' | |
23 |
|
25 | |||
24 |
|
26 | |||
@@ -124,8 +126,13 b' class SettingsManager:' | |||||
124 |
|
126 | |||
125 | def add_or_read_fav_thread(self, opening_post): |
|
127 | def add_or_read_fav_thread(self, opening_post): | |
126 | threads = self.get_fav_threads() |
|
128 | threads = self.get_fav_threads() | |
127 |
thread |
|
129 | thread = opening_post.get_thread() | |
128 | .last().id |
|
130 | # Don't check for new posts if the thread is archived already | |
|
131 | if thread.is_archived(): | |||
|
132 | last_id = FAV_THREAD_NO_UPDATES | |||
|
133 | else: | |||
|
134 | last_id = thread.get_replies().last().id | |||
|
135 | threads[str(opening_post.id)] = last_id | |||
129 | self.set_setting(SETTING_FAVORITE_THREADS, threads) |
|
136 | self.set_setting(SETTING_FAVORITE_THREADS, threads) | |
130 |
|
137 | |||
131 | def del_fav_thread(self, opening_post): |
|
138 | def del_fav_thread(self, opening_post): |
@@ -116,7 +116,7 b' class Thread(models.Model):' | |||||
116 | Checks if the thread can be bumped by replying to it. |
|
116 | Checks if the thread can be bumped by replying to it. | |
117 | """ |
|
117 | """ | |
118 |
|
118 | |||
119 | return self.bumpable and not self.archived |
|
119 | return self.bumpable and not self.is_archived() | |
120 |
|
120 | |||
121 | def get_last_replies(self) -> QuerySet: |
|
121 | def get_last_replies(self) -> QuerySet: | |
122 | """ |
|
122 | """ | |
@@ -233,3 +233,6 b' class Thread(models.Model):' | |||||
233 | def get_replies_newer(self, post_id): |
|
233 | def get_replies_newer(self, post_id): | |
234 | return self.get_replies().filter(id__gt=post_id) |
|
234 | return self.get_replies().filter(id__gt=post_id) | |
235 |
|
235 | |||
|
236 | def is_archived(self): | |||
|
237 | return self.archived | |||
|
238 |
@@ -6,7 +6,8 b' from django.db import transaction' | |||||
6 | from django.http import HttpResponse |
|
6 | from django.http import HttpResponse | |
7 | from django.shortcuts import get_object_or_404 |
|
7 | from django.shortcuts import get_object_or_404 | |
8 | from django.core import serializers |
|
8 | from django.core import serializers | |
9 | from boards.abstracts.settingsmanager import get_settings_manager |
|
9 | from boards.abstracts.settingsmanager import get_settings_manager,\ | |
|
10 | FAV_THREAD_NO_UPDATES | |||
10 |
|
11 | |||
11 | from boards.forms import PostForm, PlainErrorList |
|
12 | from boards.forms import PostForm, PlainErrorList | |
12 | from boards.models import Post, Thread, Tag |
|
13 | from boards.models import Post, Thread, Tag | |
@@ -256,8 +257,13 b' def api_get_new_posts(request):' | |||||
256 |
|
257 | |||
257 | for op in fav_thread_ops: |
|
258 | for op in fav_thread_ops: | |
258 | last_read_post = fav_threads[str(op.id)] |
|
259 | last_read_post = fav_threads[str(op.id)] | |
259 | new_posts = op.get_thread().get_replies_newer(last_read_post) |
|
260 | ||
260 | new_post_count = new_posts.count() |
|
261 | if last_read_post == FAV_THREAD_NO_UPDATES: | |
|
262 | new_post_count = 0 | |||
|
263 | else: | |||
|
264 | new_posts = op.get_thread().get_replies_newer(last_read_post) | |||
|
265 | new_post_count = new_posts.count() | |||
|
266 | ||||
261 | fav_thread_dict = dict() |
|
267 | fav_thread_dict = dict() | |
262 | fav_thread_dict['id'] = op.id |
|
268 | fav_thread_dict['id'] = op.id | |
263 | fav_thread_dict['new_post_count'] = new_post_count |
|
269 | fav_thread_dict['new_post_count'] = new_post_count |
General Comments 0
You need to be logged in to leave comments.
Login now