mirror of
https://github.com/healthchecks/healthchecks.git
synced 2025-04-07 06:05:34 +00:00
38 lines
1 KiB
Python
38 lines
1 KiB
Python
from __future__ import annotations
|
|
|
|
import time
|
|
|
|
from django.conf import settings
|
|
from django.core.management.base import BaseCommand
|
|
from django.utils.timezone import now
|
|
|
|
from hc.accounts.models import Profile
|
|
from hc.lib import emails
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = """Send warnings to accounts marked for deletion. """
|
|
|
|
def pause(self):
|
|
time.sleep(1)
|
|
|
|
def handle(self, *args, **options):
|
|
q = Profile.objects.order_by("id")
|
|
q = q.filter(deletion_scheduled_date__gt=now())
|
|
|
|
sent = 0
|
|
for profile in q:
|
|
self.stdout.write(f"Sending notice to {profile.user.email}")
|
|
|
|
ctx = {
|
|
"email": profile.user.email,
|
|
"support_email": settings.SUPPORT_EMAIL,
|
|
"deletion_scheduled_date": profile.deletion_scheduled_date,
|
|
}
|
|
emails.deletion_scheduled(profile.user.email, ctx)
|
|
sent += 1
|
|
|
|
# Throttle so we don't send too many emails at once:
|
|
self.pause()
|
|
|
|
return f"Done!\nNotices sent: {sent}\n"
|