##// END OF EJS Templates
Don't check new posts in the archived threads
neko259 -
r1344:efdda723 default
parent child Browse files
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 threads[str(opening_post.id)] = opening_post.get_thread().get_replies()\
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