Rafał Pitoń 10 лет назад
Родитель
Сommit
05bdc9533e

+ 3 - 0
misago/readtracker/forumstracker.py

@@ -21,6 +21,7 @@ def make_read_aware(user, forums):
 
 
     forums_dict = {}
     forums_dict = {}
     for forum in forums:
     for forum in forums:
+        forum.last_read_on = user.reads_cutoff
         forum.is_read = not is_date_tracked(forum.last_post_on, user)
         forum.is_read = not is_date_tracked(forum.last_post_on, user)
         if not forum.is_read:
         if not forum.is_read:
             forums_dict[forum.pk] = forum
             forums_dict[forum.pk] = forum
@@ -33,7 +34,9 @@ def make_read_aware(user, forums):
 
 
 
 
 def make_read(forums):
 def make_read(forums):
+    now = timezone.now()
     for forum in forums:
     for forum in forums:
+        forum.last_read_on = now
         forum.is_read = True
         forum.is_read = True
 
 
 
 

+ 4 - 3
misago/threads/views/generic/forum/threads.py

@@ -1,5 +1,5 @@
 from misago.core.shortcuts import paginate
 from misago.core.shortcuts import paginate
-from misago.readtracker import threadstracker
+from misago.readtracker import forumstracker, threadstracker
 
 
 from misago.threads.permissions import exclude_invisible_threads
 from misago.threads.permissions import exclude_invisible_threads
 from misago.threads.views.generic.threads import Threads
 from misago.threads.views.generic.threads import Threads
@@ -10,11 +10,12 @@ __all__ = ['ForumThreads']
 
 
 class ForumThreads(Threads):
 class ForumThreads(Threads):
     def __init__(self, user, forum):
     def __init__(self, user, forum):
-        self.pinned_count = 0
-
         self.user = user
         self.user = user
         self.forum = forum
         self.forum = forum
 
 
+        forumstracker.make_read_aware(user, forum)
+
+        self.pinned_count = 0
         self.filter_by = None
         self.filter_by = None
         self.sort_by = '-last_post_on'
         self.sort_by = '-last_post_on'
 
 

+ 0 - 1
misago/threads/views/generic/forum/view.py

@@ -26,7 +26,6 @@ class ForumView(ThreadsView):
 
 
     def dispatch(self, request, *args, **kwargs):
     def dispatch(self, request, *args, **kwargs):
         forum = self.get_forum(request, **kwargs)
         forum = self.get_forum(request, **kwargs)
-        forumstracker.make_read_aware(request.user, forum)
 
 
         forum.labels = Label.objects.get_forum_labels(forum)
         forum.labels = Label.objects.get_forum_labels(forum)