2026-10-13 19:43:55 +02:00

25 lines
961 B
Python

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).'))