Coverage for website/registrations/tasks.py: 100.00%
21 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from datetime import timedelta
3from django.utils import timezone
5from celery import shared_task
7from registrations import emails
9from . import services
10from .models import Registration, Renewal
13@shared_task
14def minimise_registrations():
15 services.execute_data_minimisation()
18@shared_task
19def notify_old_entries():
20 """Delete very old entries and send a reminder to board for less old entries."""
21 Registration.objects.exclude(
22 status__in=(Registration.STATUS_COMPLETED, Registration.STATUS_REJECTED)
23 ).filter(
24 payment=None,
25 updated_at__lt=timezone.now() - timedelta(days=30),
26 created_at__lt=timezone.now() - timedelta(days=90),
27 ).delete()
28 Renewal.objects.exclude(
29 status__in=(Renewal.STATUS_COMPLETED, Renewal.STATUS_REJECTED)
30 ).filter(
31 payment=None,
32 updated_at__lt=timezone.now() - timedelta(days=30),
33 created_at__lt=timezone.now() - timedelta(days=90),
34 ).delete()
36 for registration in Registration.objects.exclude(
37 status__in=(Registration.STATUS_COMPLETED, Registration.STATUS_REJECTED)
38 ).filter(payment=None, updated_at__lt=timezone.now() - timedelta(days=30)):
39 emails.send_reminder_open_registration(registration)
40 registration.updated_at = timezone.now()
41 registration.save()
43 for renewal in Renewal.objects.exclude(
44 status__in=(Renewal.STATUS_COMPLETED, Renewal.STATUS_REJECTED)
45 ).filter(payment=None, updated_at__lt=timezone.now() - timedelta(days=30)):
46 emails.send_reminder_open_renewal(renewal)
47 renewal.updated_at = timezone.now()
48 renewal.save()