populateonlinetracker.py 782 B

12345678910111213141516171819202122232425
  1. from django.contrib.auth import get_user_model
  2. from django.core.management.base import BaseCommand
  3. from misago.core.pgutils import chunk_queryset
  4. from misago.users.models import Online
  5. UserModel = get_user_model()
  6. class Command(BaseCommand):
  7. help = "Populates online tracker for user accounts that lack it."
  8. def handle(self, *args, **options):
  9. entries_created = 0
  10. queryset = UserModel.objects.filter(online_tracker__isnull=True)
  11. for user in chunk_queryset(queryset):
  12. Online.objects.create(
  13. user=user,
  14. current_ip=user.joined_from_ip,
  15. last_click=user.last_login,
  16. )
  17. entries_created += 1
  18. self.stdout.write("Tracker entries created: %s" % entries_created)