clearreadtracker.py 895 B

1234567891011121314151617181920212223242526272829
  1. from datetime import timedelta
  2. from django.core.management.base import BaseCommand
  3. from django.utils import timezone
  4. from misago.conf import settings
  5. from misago.readtracker.models import CategoryRead, ThreadRead
  6. class Command(BaseCommand):
  7. help = "Deletes expired records from readtracker"
  8. def handle(self, *args, **options):
  9. cutoff = timezone.now() - timedelta(days=settings.MISAGO_READTRACKER_CUTOFF)
  10. categories = CategoryRead.objects.filter(last_read_on__lte=cutoff)
  11. threads = ThreadRead.objects.filter(last_read_on__lte=cutoff)
  12. total_count = categories.count() + threads.count()
  13. if total_count:
  14. categories.delete()
  15. threads.delete()
  16. message = "\n\nDeleted %s expired entries" % total_count
  17. else:
  18. message = "\n\nNo expired entries were found"
  19. self.stdout.write(message)