25 lines
961 B
Python
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).'))
|