url(r'^details1/(?P<user_id>\w+)/(?P<task_id>\d+)/$', views.details1,name='details1'),
url(r'^details1/(?P<user_id>\w+)/(?P<task_id>\d+)/restart/$', views.restart1,name='restart1'),
url(r'^delete/(?P<task_id>\d+)/$', views.delete),
+ url(r'(?P<task_id>\d+)/all.zip$', views.zip_all_files),
]
return
+
+@login_required
+def zip_all_files(request, task_id):
+ import os, zipfile
+ from django.http import HttpResponse
+ from wsgiref.util import FileWrapper
+ from django.core.files.temp import NamedTemporaryFile
+
+ task = get_object_or_404(Task, id=task_id)
+
+ temp=NamedTemporaryFile()
+ archive = zipfile.ZipFile(temp, 'w', zipfile.ZIP_DEFLATED)
+ for (dirpath, dirnames, filenames) in os.walk(task.jobdirname):
+ for file1 in filenames:
+ archive.write(dirpath+"/"+file1,file1)
+ archive.close()
+ temp.seek(0)
+ wrapper = FileWrapper(temp)
+ response = HttpResponse(wrapper, content_type='application/zip')
+ response['Content-Disposition'] = 'attachment; filename=all.zip'
+ return response