from django.core.management.base import BaseCommand from django.db.models import F from misago.conf import settings from misago.models import Thread class Command(BaseCommand): """ This command is intended to work as CRON job fired every few days to update thread popularity ranking """ help = 'Updates Popular Threads ranking' def handle(self, *args, **options): if settings.thread_ranking_inflation > 0: inflation = float(100 - settings.thread_ranking_inflation) / 100 Thread.objects.all().update(score=F('score') * inflation) self.stdout.write('Thread ranking has been updated.\n') else: self.stdout.write('Thread ranking inflation is disabled.\n')