|
|
- from django.core.management.base import BaseCommand
- from django.db.models import Min
-
- from hc.api.models import Notification, Check
-
-
- class Command(BaseCommand):
- help = 'Prune stored notifications'
-
- def handle(self, *args, **options):
- total = 0
-
- q = Check.objects.filter(n_pings__gt=0)
- q = q.annotate(min_ping_date=Min("ping__created"))
- for check in q:
- qq = Notification.objects.filter(owner_id=check.id,
- created__lt=check.min_ping_date)
-
- num_deleted, _ = qq.delete()
- total += num_deleted
-
- return "Done! Pruned %d notifications." % total
|