reparseposts.py 867 B

12345678910111213141516171819202122
  1. from django.core.management.base import BaseCommand
  2. from misago.markdown import post_markdown
  3. from misago.models import Post
  4. class Command(BaseCommand):
  5. help = 'Reparse markdown for all forum posts'
  6. def handle(self, *args, **options):
  7. count = 0
  8. total = Post.objects.count()
  9. last = 0
  10. self.stdout.write('\nReparsing posts...')
  11. for post in Post.objects.iterator():
  12. md, post.post_preparsed = post_markdown(post.post)
  13. post.save(force_update=True)
  14. count += 1
  15. progress = (count * 100 / total)
  16. if not progress % 10 and progress > last and progress < 100:
  17. self.stdout.write('Reparsed %s out of %s posts...' % (count, total))
  18. last = progress
  19. self.stdout.write('\n%s posts have been reparsed.\n' % count)