diff --git a/boards/migrations/0025_auto_20150825_2049.py b/boards/migrations/0025_auto_20150825_2049.py
--- a/boards/migrations/0025_auto_20150825_2049.py
+++ b/boards/migrations/0025_auto_20150825_2049.py
@@ -2,14 +2,21 @@
from __future__ import unicode_literals
from django.db import migrations
-from boards.models import Post
class Migration(migrations.Migration):
- def refuild_refmap(apps, schema_editor):
+ def rebuild_refmap(apps, schema_editor):
+ Post = apps.get_model('boards', 'Post')
for post in Post.objects.all():
- post.build_refmap()
+ refposts = list()
+ for refpost in post.referenced_posts.all():
+ result = '>>{}'.format(refpost.get_absolute_url(),
+ self.id)
+ if refpost.is_opening():
+ result = '{}'.format(result)
+ refposts += result
+ post.refmap = ', '.join(refposts)
post.save(update_fields=['refmap'])
dependencies = [
@@ -17,5 +24,5 @@ class Migration(migrations.Migration):
]
operations = [
- migrations.RunPython(refuild_refmap),
+ migrations.RunPython(rebuild_refmap),
]
diff --git a/boards/models/thread.py b/boards/models/thread.py
--- a/boards/models/thread.py
+++ b/boards/models/thread.py
@@ -72,8 +72,9 @@ class ThreadManager(models.Manager):
new_post_count=Count('multi_replies'))
def get_new_post_count(self, datas):
- return self.get_new_posts(datas).aggregate(
- total_count=Count('multi_replies'))['total_count']
+ new_posts = self.get_new_posts(datas)
+ return new_posts.aggregate(total_count=Count('multi_replies'))\
+ ['total_count'] if new_posts else 0
def get_thread_max_posts():
@@ -224,7 +225,7 @@ class Thread(models.Model):
def update_posts_time(self, exclude_posts=None):
last_edit_time = self.last_edit_time
- for post in self.post_set.all():
+ for post in self.multi_replies.all():
if exclude_posts is None or post not in exclude_posts:
# Manual update is required because uids are generated on save
post.last_edit_time = last_edit_time