def zip_export(request, username, id_string): owner = get_object_or_404(User, username=username) xform = get_object_or_404(XForm, id_string=id_string, user=owner) if not has_permission(xform, owner, request): return HttpResponseForbidden('Not shared.') dd = DataDictionary.objects.get(id_string=id_string, user=owner) if request.GET.get('raw'): id_string = None # create zip_file tmp = NamedTemporaryFile() z = zipfile.ZipFile(tmp, 'w', zipfile.ZIP_DEFLATED) photos = image_urls_for_form(xform) for photo in photos: f = NamedTemporaryFile() req = urllib2.Request(photo) f.write(urllib2.urlopen(req).read()) f.seek(0) z.write(f.name, urlparse(photo).path[1:]) f.close() z.close() if request.GET.get('raw'): id_string = None response = response_with_mimetype_and_name('zip', id_string, file_path=tmp.name, use_local_filesystem=True) return response
def zip_export(request, username, id_string): owner = get_object_or_404(User, username=username) xform = get_object_or_404(XForm, id_string=id_string, user=owner) if not has_permission(xform, owner, request): return HttpResponseForbidden(_(u'Not shared.')) dd = DataDictionary.objects.get(id_string=id_string, user=owner) if request.GET.get('raw'): id_string = None # create zip_file tmp = NamedTemporaryFile() z = zipfile.ZipFile(tmp, 'w', zipfile.ZIP_DEFLATED) photos = image_urls_for_form(xform) for photo in photos: f = NamedTemporaryFile() req = urllib2.Request(photo) f.write(urllib2.urlopen(req).read()) f.seek(0) z.write(f.name, urlparse(photo).path[1:]) f.close() z.close() if request.GET.get('raw'): id_string = None response = response_with_mimetype_and_name('zip', id_string, file_path=tmp.name, use_local_filesystem=True) return response
def zip_export(request, username, id_string): owner = get_object_or_404(User, username=username) xform = get_object_or_404(XForm, id_string=id_string, user=owner) helper_auth_helper(request) if not has_permission(xform, owner, request): return HttpResponseForbidden(_(u'Not shared.')) dd = DataDictionary.objects.get(id_string=id_string, user=owner) if request.GET.get('raw'): id_string = None # create zip_file tmp = NamedTemporaryFile() z = zipfile.ZipFile(tmp, 'w', zipfile.ZIP_DEFLATED) photos = image_urls_for_form(xform) for photo in photos: f = NamedTemporaryFile() req = urllib2.Request(photo) f.write(urllib2.urlopen(req).read()) f.seek(0) z.write(f.name, urlparse(photo).path[1:]) f.close() z.close() audit = { "xform": xform.id_string, "export_type": Export.ZIP_EXPORT } audit_log(Actions.EXPORT_CREATED, request.user, owner, _("Created ZIP export on '%(id_string)s'.") %\ { 'id_string': xform.id_string, }, audit, request) # log download as well audit_log(Actions.EXPORT_DOWNLOADED, request.user, owner, _("Downloaded ZIP export on '%(id_string)s'.") %\ { 'id_string': xform.id_string, }, audit, request) if request.GET.get('raw'): id_string = None response = response_with_mimetype_and_name('zip', id_string, file_path=tmp.name, use_local_filesystem=True) return response