#!/usr/bin/env python3 # -*- coding: utf-8 -*- import datetime from django.conf import settings from django.core.management.base import BaseCommand import sys from ishtar_common.models import GDPRLog, GDPRPerson from ishtar_common.utils import BColors def get_time(): return datetime.datetime.now().isoformat().split(".")[0] def clean_gdpr(): date = datetime.datetime.now() - ( datetime.timedelta(days=settings.GDPR_RETENTION_PERIOD) ) q = GDPRLog.objects.filter(date__lte=date) nb = q.count() q.delete() q = GDPRPerson.objects.filter(logs=None) q.delete() return nb class Command(BaseCommand): help = "Cleaning up obsolete gdpr data" def add_arguments(self, parser): parser.add_argument( "--quiet", dest="quiet", action="store_true", help="Quiet output" ) def handle(self, *args, **options): quiet = options["quiet"] if not quiet: msg = BColors.format("HEADER", f"[{get_time()}] Processing DGPR cleansing\n") sys.stdout.write(msg) nb = clean_gdpr() if not quiet: sys.stdout.write(f"{nb} dgpr logs cleaned\n") sys.exit(1)