|
@@ -0,0 +1,33 @@
|
|
|
+import time
|
|
|
+
|
|
|
+from django.core.management.base import BaseCommand
|
|
|
+
|
|
|
+from misago.core.management.progressbar import show_progress
|
|
|
+from misago.core.pgutils import batch_update
|
|
|
+
|
|
|
+from misago.threads.models import Thread
|
|
|
+
|
|
|
+
|
|
|
+class Command(BaseCommand):
|
|
|
+ help = 'Synchronizes threads'
|
|
|
+
|
|
|
+ def handle(self, *args, **options):
|
|
|
+ threads_to_sync = Thread.objects.count()
|
|
|
+
|
|
|
+ message = 'Synchronizing %s threads...\n'
|
|
|
+ self.stdout.write(message % threads_to_sync)
|
|
|
+
|
|
|
+ message = '\n\nSynchronized %s threads'
|
|
|
+
|
|
|
+ synchronized_count = 0
|
|
|
+ show_progress(self, synchronized_count, threads_to_sync)
|
|
|
+ start_time = time.time()
|
|
|
+ for thread in batch_update(Thread.objects.all()):
|
|
|
+ thread.synchronize()
|
|
|
+ thread.save()
|
|
|
+
|
|
|
+ synchronized_count += 1
|
|
|
+ show_progress(
|
|
|
+ self, synchronized_count, threads_to_sync, start_time)
|
|
|
+
|
|
|
+ self.stdout.write(message % synchronized_count)
|