button to download all files as zip archive
[django_unres.git] / django_simple / todo / views.py
index 1157bfa..cddfc88 100644 (file)
@@ -1161,3 +1161,24 @@ def refresh_done0(task):
 
     
       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