prepareuserdatadownloads.py 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. import logging
  2. from django.core.management.base import BaseCommand
  3. from misago.conf import settings
  4. from misago.core.pgutils import chunk_queryset
  5. from misago.users.datadownloads import prepare_user_data_download
  6. from misago.users.models import DataDownload
  7. logger = logging.getLogger('misago.users.datadownloads')
  8. class Command(BaseCommand):
  9. help = "Prepares user data downloads."
  10. def handle(self, *args, **options):
  11. working_dir = settings.MISAGO_USER_DATA_DOWNLOADS_WORKING_DIR
  12. if not working_dir:
  13. self.stdout.write(
  14. "MISAGO_USER_DATA_DOWNLOADS_WORKING_DIR has to be set in order for "
  15. "this feature to work.")
  16. return
  17. downloads_prepared = 0
  18. queryset = DataDownload.objects.select_related('user')
  19. queryset = queryset.filter(status=DataDownload.STATUS_PENDING)
  20. for data_download in chunk_queryset(queryset):
  21. if prepare_user_data_download(data_download, logger):
  22. downloads_prepared += 1
  23. self.stdout.write("Data downloads prepared: {}".format(downloads_prepared))