from datetime import timedelta from pathlib import Path from django.conf import settings from django.core.management.base import BaseCommand from django.utils import timezone from drive.models import UploadSession class Command(BaseCommand): help='Purge les sessions de transferts interrompus depuis plus de N jours.' def add_arguments(self,parser): parser.add_argument('--days',type=int,default=14) def handle(self,*args,**opts): if opts['days']<1: raise ValueError('Le nombre de jours doit ĂȘtre positif.') rows=UploadSession.objects.filter(updated_at__lt=timezone.now()-timedelta(days=opts['days'])) count=0 for job in rows.iterator(): path=Path(settings.FILE_UPLOAD_TEMP_DIR)/f'drive-{job.pk}.part' job.delete() path.unlink(missing_ok=True) count+=1 self.stdout.write(self.style.SUCCESS(f'{count} import(s) ancien(s) supprimĂ©(s).'))