def as_dtb(request, document_id): form = DTBForm(request.POST) if not form.is_valid(): return HttpResponseRedirect(reverse('browse_detail', args=[document_id])) document = Document.objects.get(pk=document_id) inputFile = document.latest_version().content.path outputDir = tempfile.mkdtemp(prefix="daisyproducer-") DaisyPipeline.dtbook2dtb(inputFile, outputDir, **form.cleaned_data) ignore, zipFileName = tempfile.mkstemp(suffix='.zip', prefix=document_id) zipDirectory(outputDir, zipFileName, document.title) shutil.rmtree(outputDir) return render_to_mimetype_response('application/zip', document.title.encode('utf-8'), zipFileName)
def preview_dtb(request, document_id): document = get_object_or_404(Document, pk=document_id) if request.method == 'POST': form = DTBForm(request.POST) if form.is_valid(): inputFile = document.latest_version().content.path outputDir = tempfile.mkdtemp(prefix="daisyproducer-") DaisyPipeline.dtbook2dtb(inputFile, outputDir, **form.cleaned_data) ignore, zipFileName = tempfile.mkstemp(suffix='.zip', prefix=document_id) zipDirectory(outputDir, zipFileName, document.title) # shutil.rmtree(outputDir) return render_to_mimetype_response('application/zip', document.title.encode('utf-8'), zipFileName) else: form = DTBForm() return render_to_response('documents/todo_dtb.html', locals(), context_instance=RequestContext(request))
def preview_dtb(request, document_id): document = get_object_or_404(Document, pk=document_id) if request.method == 'POST': form = DTBForm(request.POST) if form.is_valid(): inputFile = document.latest_version().content.path outputDir = tempfile.mkdtemp(prefix="daisyproducer-") DaisyPipeline.dtbook2dtb(inputFile, outputDir, **form.cleaned_data) zipFile = tempfile.NamedTemporaryFile(suffix='.zip', prefix=document_id, delete=False) zipFile.close() # we are only interested in a unique filename zipDirectory(outputDir, zipFile.name, document.title) shutil.rmtree(outputDir) return render_to_mimetype_response('application/zip', document.title.encode('utf-8'), zipFile.name) else: form = DTBForm() return render(request, 'documents/todo_dtb.html', locals())