Browse Source

Changed forum sync() implementation.

Ralfp 12 years ago
parent
commit
c7de63bc21
1 changed files with 6 additions and 2 deletions
  1. 6 2
      misago/models/forummodel.py

+ 6 - 2
misago/models/forummodel.py

@@ -6,6 +6,7 @@ from django.conf import settings
 from django.core.cache import cache
 from django.core.cache import cache
 from django.core.urlresolvers import reverse
 from django.core.urlresolvers import reverse
 from django.db import models
 from django.db import models
+from django.db.models import Sum
 from django.utils.translation import ugettext_lazy as _
 from django.utils.translation import ugettext_lazy as _
 from misago.signals import delete_forum_content, move_forum_content, rename_forum, rename_user
 from misago.signals import delete_forum_content, move_forum_content, rename_forum, rename_user
 
 
@@ -319,8 +320,11 @@ class Forum(MPTTModel):
             pass
             pass
 
 
     def sync(self):
     def sync(self):
-        self.threads = self.thread_set.filter(moderated=False).filter(deleted=False).count()
-        self.posts = self.post_set.filter(moderated=False).count()
+        threads_qs = self.thread_set.filter(moderated=False).filter(deleted=False)
+        self.posts = self.threads = threads_qs.count()
+        replies = threads_qs.aggregate(Sum('replies'))
+        if replies['replies__sum']:
+            self.posts += replies['replies__sum']
         self.sync_last()
         self.sync_last()
 
 
     def prune(self):
     def prune(self):