basic export to zip working
This commit is contained in:
@ -1,7 +1,10 @@
|
||||
import json
|
||||
import os
|
||||
from io import StringIO, BytesIO
|
||||
from os.path import basename
|
||||
from zipfile import ZipFile
|
||||
|
||||
from django.http import HttpResponse
|
||||
from rest_framework.renderers import JSONRenderer
|
||||
|
||||
from cookbook.integration.integration import Integration
|
||||
@ -12,7 +15,8 @@ class Default(Integration):
|
||||
|
||||
def do_export(self, recipes):
|
||||
path = self.get_tmp_dir_path()
|
||||
export_zip_obj = ZipFile(os.path.join(path, 'export.zip'), 'w')
|
||||
s = BytesIO()
|
||||
export_zip_obj = ZipFile(s, 'w')
|
||||
|
||||
for r in recipes:
|
||||
if r.internal:
|
||||
@ -22,15 +26,18 @@ class Default(Integration):
|
||||
|
||||
f = open(os.path.join(path, str(r.pk), 'recipe.json'), "w", encoding="utf-8")
|
||||
f.write(self.get_export(r))
|
||||
recipe_zip_obj.write(f.name)
|
||||
recipe_zip_obj.write(r.image.path)
|
||||
recipe_zip_obj.write(f.name, basename(f.name))
|
||||
recipe_zip_obj.write(r.image.path, basename(r.image.path))
|
||||
f.close()
|
||||
|
||||
recipe_zip_obj.close()
|
||||
export_zip_obj.write(recipe_zip_obj.filename)
|
||||
export_zip_obj.write(recipe_zip_obj.filename, basename(recipe_zip_obj.filename))
|
||||
|
||||
export_zip_obj.close()
|
||||
return export_zip_obj.filename
|
||||
|
||||
response = HttpResponse(s.getvalue(), content_type='application/force-download')
|
||||
response['Content-Disposition'] = 'attachment; filename="export.zip"'
|
||||
return response
|
||||
|
||||
def get_recipe(self, string):
|
||||
data = json.loads(string)
|
||||
|
Reference in New Issue
Block a user