def test_export_csv(): headers = ["x", "y"] data = [ ["1", "2"], ["3", "4"], ["5,6", "7"], [None, None], ["http://gethue.com", "http://gethue.com"] ] # Check CSV generator = create_generator(content_generator(headers, data), "csv") response = make_response(generator, "csv", "foo") assert_equal("application/csv", response["content-type"]) content = ''.join(response.streaming_content) assert_equal('x,y\r\n1,2\r\n3,4\r\n"5,6",7\r\nNULL,NULL\r\nhttp://gethue.com,http://gethue.com\r\n', content) assert_equal('attachment; filename="foo.csv"', response["content-disposition"]) # Check non-ASCII for any browser except FF or no browser info generator = create_generator(content_generator(headers, data), "csv") response = make_response(generator, "csv", u'gんtbhんjk?¥n') assert_equal("application/csv", response["content-type"]) content = ''.join(response.streaming_content) assert_equal('x,y\r\n1,2\r\n3,4\r\n"5,6",7\r\nNULL,NULL\r\nhttp://gethue.com,http://gethue.com\r\n', content) assert_equal('attachment; filename="g%E3%82%93tbh%E3%82%93jk%EF%BC%9F%EF%BF%A5n.csv"', response["content-disposition"]) # Check non-ASCII for FF browser generator = create_generator(content_generator(headers, data), "csv") response = make_response(generator, "csv", u'gんtbhんjk?¥n', user_agent='Mozilla / 5.0(Macintosh; Intel Mac OS X 10.12;rv:59.0) Gecko / 20100101 Firefox / 59.0)') assert_equal("application/csv", response["content-type"]) content = ''.join(response.streaming_content) assert_equal('x,y\r\n1,2\r\n3,4\r\n"5,6",7\r\nNULL,NULL\r\nhttp://gethue.com,http://gethue.com\r\n', content) assert_equal('attachment; filename*="g%E3%82%93tbh%E3%82%93jk%EF%BC%9F%EF%BF%A5n.csv"', response["content-disposition"])
def test_export_csv(): headers = ["x", "y"] data = [ ["1", "2"], ["3", "4"], ["5,6", "7"], [None, None], ["http://gethue.com", "http://gethue.com"] ] # Check CSV generator = create_generator(content_generator(headers, data), "csv") response = make_response(generator, "csv", "foo") assert_equal("application/csv", response["content-type"]) content = b''.join(response.streaming_content) assert_equal(b'x,y\r\n1,2\r\n3,4\r\n"5,6",7\r\nNULL,NULL\r\nhttp://gethue.com,http://gethue.com\r\n', content) assert_equal('attachment; filename="foo.csv"', response["content-disposition"]) # Check non-ASCII for any browser except FF or no browser info generator = create_generator(content_generator(headers, data), "csv") response = make_response(generator, "csv", u'gんtbhんjk?¥n') assert_equal("application/csv", response["content-type"]) content = b''.join(response.streaming_content) assert_equal(b'x,y\r\n1,2\r\n3,4\r\n"5,6",7\r\nNULL,NULL\r\nhttp://gethue.com,http://gethue.com\r\n', content) assert_equal('attachment; filename="g%E3%82%93tbh%E3%82%93jk%EF%BC%9F%EF%BF%A5n.csv"', response["content-disposition"]) # Check non-ASCII for FF browser generator = create_generator(content_generator(headers, data), "csv") response = make_response(generator, "csv", u'gんtbhんjk?¥n', user_agent='Mozilla / 5.0(Macintosh; Intel Mac OS X 10.12;rv:59.0) Gecko / 20100101 Firefox / 59.0)') assert_equal("application/csv", response["content-type"]) content = b''.join(response.streaming_content) assert_equal(b'x,y\r\n1,2\r\n3,4\r\n"5,6",7\r\nNULL,NULL\r\nhttp://gethue.com,http://gethue.com\r\n', content) assert_equal('attachment; filename*="g%E3%82%93tbh%E3%82%93jk%EF%BC%9F%EF%BF%A5n.csv"', response["content-disposition"])
def test_export_csvxls(): header = ["x", "y"] data = [ ["1", "2"], ["3", "4"] ] # Check CSV response = make_response(header, data, "csv", "foo") assert_equal("application/csv", response["content-type"]) assert_equal('"x","y"\r\n"1","2"\r\n"3","4"\r\n', response.content) assert_equal("attachment; filename=foo.csv", response["content-disposition"]) # Check XLS response = make_response(header, data, "xls", "bar") assert_equal("application/xls", response["content-type"]) assert_equal("attachment; filename=bar.xls", response["content-disposition"]) assert_equal('"x","y"\r\n"1","2"\r\n"3","4"\r\n', xls2csv(response.content))
def download(format, db, id=None, file_name='query_result', user_agent=None, max_rows=-1, max_bytes=-1, store_data_type_in_header=False, start_over=True): """ download(query_model, format) -> HttpResponse Retrieve the query result in the format specified. Return an HttpResponse object. """ if format not in common.DL_FORMATS: LOG.error('Unknown download format "%s"' % (format,)) return content_generator = DataAdapter(db, max_rows=max_rows, start_over=start_over, max_bytes=max_bytes, store_data_type_in_header=store_data_type_in_header) generator = export_csvxls.create_generator(content_generator, format) resp = export_csvxls.make_response(generator, format, file_name, user_agent=user_agent) if id: resp.set_cookie( 'download-%s' % id, json.dumps({ 'truncated': content_generator.is_truncated, 'row_counter': content_generator.row_counter }), max_age=DOWNLOAD_COOKIE_AGE ) return resp
def download(handle, format, db, id=None, file_name='query_result'): """ download(query_model, format) -> HttpResponse Retrieve the query result in the format specified. Return an HttpResponse object. """ if format not in common.DL_FORMATS: LOG.error('Unknown download format "%s"' % (format,)) return max_rows = conf.DOWNLOAD_ROW_LIMIT.get() content_generator = HS2DataAdapter(handle, db, max_rows=max_rows, start_over=True) generator = export_csvxls.create_generator(content_generator, format) resp = export_csvxls.make_response(generator, format, file_name) if id: resp.set_cookie( 'download-%s' % id, json.dumps({ 'truncated': content_generator.is_truncated, 'row_counter': content_generator.row_counter }), max_age=DOWNLOAD_COOKIE_AGE ) return resp
def download(handle, format, db, id=None): """ download(query_model, format) -> HttpResponse Retrieve the query result in the format specified. Return an HttpResponse object. """ if format not in common.DL_FORMATS: LOG.error('Unknown download format "%s"' % (format, )) return max_cells = conf.DOWNLOAD_CELL_LIMIT.get() content_generator = HS2DataAdapter(handle, db, max_cells=max_cells, start_over=True) generator = export_csvxls.create_generator(content_generator, format) resp = export_csvxls.make_response(generator, format, 'query_result') if id: resp.set_cookie('download-%s' % id, json.dumps({ 'truncated': content_generator.is_truncated, 'row_counter': content_generator.row_counter }), max_age=DOWNLOAD_COOKIE_AGE) return resp
def download(request): if not ENABLE_DOWNLOAD.get(): return serve_403_error(request) notebook = json.loads(request.POST.get('notebook', '{}')) snippet = json.loads(request.POST.get('snippet', '{}')) file_format = request.POST.get('format', 'csv') user_agent = request.META.get('HTTP_USER_AGENT') file_name = _get_snippet_name(notebook) content_generator = get_api(request, snippet).download(notebook, snippet, file_format=file_format) response = export_csvxls.make_response(content_generator, file_format, file_name, user_agent=user_agent) if snippet['id']: response.set_cookie( 'download-%s' % snippet['id'], json.dumps({ 'truncated': 'false', 'row_counter': '0' }), max_age=DOWNLOAD_COOKIE_AGE ) if response: request.audit = { 'operation': 'DOWNLOAD', 'operationText': 'User %s downloaded results from %s as %s' % (request.user.username, _get_snippet_name(notebook), file_format), 'allowed': True } return response
def download(handle, format, db, id=None, file_name='query_result', user_agent=None): """ download(query_model, format) -> HttpResponse Retrieve the query result in the format specified. Return an HttpResponse object. """ if format not in common.DL_FORMATS: LOG.error('Unknown download format "%s"' % (format,)) return max_rows = conf.DOWNLOAD_ROW_LIMIT.get() max_bytes = conf.DOWNLOAD_BYTES_LIMIT.get() content_generator = DataAdapter(db, handle=handle, max_rows=max_rows, max_bytes=max_bytes) generator = export_csvxls.create_generator(content_generator, format) resp = export_csvxls.make_response(generator, format, file_name, user_agent=user_agent) if id: resp.set_cookie( 'download-%s' % id, json.dumps({ 'truncated': content_generator.is_truncated, 'row_counter': content_generator.row_counter }), max_age=DOWNLOAD_COOKIE_AGE ) return resp
def export_documents(request): if request.GET.get('documents'): selection = json.loads(request.GET.get('documents')) else: selection = json.loads(request.POST.get('documents')) # Only export documents the user has permissions to read docs = Document2.objects.documents(user=request.user, perms='both', include_history=True, include_trashed=True).\ filter(id__in=selection).order_by('-id') # Add any dependencies to the set of exported documents export_doc_set = _get_dependencies(docs) # For directories, add any children docs to the set of exported documents export_doc_set.update(_get_dependencies(docs, deps_mode=False)) # Get PKs of documents to export doc_ids = [doc.pk for doc in export_doc_set] num_docs = len(doc_ids) if len(selection) == 1 and num_docs >= len(selection) and docs[0].name: filename = docs[0].name else: filename = 'hue-documents-%s-(%s)' % ( datetime.today().strftime('%Y-%m-%d'), num_docs) f = string_io() if doc_ids: doc_ids = ','.join(map(str, doc_ids)) management.call_command('dumpdata', 'desktop.Document2', primary_keys=doc_ids, indent=2, use_natural_foreign_keys=True, verbosity=2, stdout=f) if request.GET.get('format') == 'json': return JsonResponse(f.getvalue(), safe=False) elif request.GET.get('format') == 'zip': zfile = zipfile.ZipFile(f, 'w') zfile.writestr("hue.json", f.getvalue()) for doc in docs: if doc.type == 'notebook': try: from spark.models import Notebook zfile.writestr("notebook-%s-%s.txt" % (doc.name, doc.id), smart_str(Notebook(document=doc).get_str())) except Exception as e: LOG.exception(e) zfile.close() response = HttpResponse(content_type="application/zip") response["Content-Length"] = len(f.getvalue()) response[ 'Content-Disposition'] = 'attachment; filename="%s".zip' % filename response.write(f.getvalue()) return response else: return make_response(f.getvalue(), 'json', filename)
def download(api, session, cell, format): if format not in DL_FORMATS: LOG.error('Unknown download format "%s"' % format) return content_generator = SparkDataAdapter(api, session, cell) generator = export_csvxls.create_generator(content_generator, format) return export_csvxls.make_response(generator, format, "script_result")
def download(api, session, cell, format, user_agent=None): if format not in DL_FORMATS: LOG.error('Unknown download format "%s"' % format) return content_generator = SparkDataAdapter(api, session, cell) generator = export_csvxls.create_generator(content_generator, format) return export_csvxls.make_response(generator, format, 'script_result', user_agent=user_agent)
def test_export_csvxls(): header = ["x", "y"] data = [["1", "2"], ["3", "4"]] # Check CSV response = make_response(header, data, "csv", "foo") assert_equal("application/csv", response["content-type"]) assert_equal('"x","y"\r\n"1","2"\r\n"3","4"\r\n', response.content) assert_equal("attachment; filename=foo.csv", response["content-disposition"]) # Check XLS response = make_response(header, data, "xls", "bar") assert_equal("application/xls", response["content-type"]) assert_equal("attachment; filename=bar.xls", response["content-disposition"]) assert_equal('"x","y"\r\n"1","2"\r\n"3","4"\r\n', xls2csv(response.content))
def test_export_csv(): header = ["x", "y"] data = [ ["1", "2"], ["3", "4"], ["5,6", "7"], [None, None] ] # Check CSV response = make_response(header, data, "csv", "foo") assert_equal("application/csv", response["content-type"]) assert_equal('x,y\r\n1,2\r\n3,4\r\n"5,6",7\r\nNULL,NULL\r\n', response.content) assert_equal("attachment; filename=foo.csv", response["content-disposition"])
def test_export_csv(): headers = ["x", "y"] data = [["1", "2"], ["3", "4"], ["5,6", "7"], [None, None]] # Check CSV generator = create_generator(content_generator(headers, data), "csv") response = make_response(generator, "csv", "foo") assert_equal("application/csv", response["content-type"]) content = "".join(response.streaming_content) assert_equal('x,y\r\n1,2\r\n3,4\r\n"5,6",7\r\nNULL,NULL\r\n', content) assert_equal("attachment; filename=foo.csv", response["content-disposition"])
def test_export_csv(): header = ["x", "y"] data = [ ["1", "2"], ["3", "4"], ["5,6", "7"], [None, None] ] # Check CSV generator = create_generator(content_generator(header, data), "csv") response = make_response(generator, "csv", "foo") assert_equal("application/csv", response["content-type"]) content = ''.join(response.streaming_content) assert_equal('x,y\r\n1,2\r\n3,4\r\n"5,6",7\r\nNULL,NULL\r\n', content) assert_equal("attachment; filename=foo.csv", response["content-disposition"])
def test_export_csv(): header = ["x", "y"] data = [["1", "2"], ["3", "4"], ["5,6", "7"], [None, None]] # Check CSV response = make_response(header, data, "csv", "foo") assert_equal("application/csv", response["content-type"]) assert_equal('x,y\r\n1,2\r\n3,4\r\n"5,6",7\r\nNULL,NULL\r\n', response.content) assert_equal("attachment; filename=foo.csv", response["content-disposition"])
def download(results, format): """ download(results, format) -> HttpResponse Transform the search result set to the specified format and dwonload. """ if format not in DL_FORMATS: LOG.error('Unknown download format "%s"' % format) return data = SearchDataAdapter(results, format) return export_csvxls.make_response(data[0], data[1:], format, 'query_result')
def download(handle, format, db): """ download(query_model, format) -> HttpResponse Retrieve the query result in the format specified. Return an HttpResponse object. """ if format not in common.DL_FORMATS: LOG.error('Unknown download format "%s"' % (format,)) return data, has_more = HS2DataAdapter(handle, db, conf.DOWNLOAD_ROW_LIMIT.get()) return export_csvxls.make_response(data[0], data[1:], format, 'query_result')
def test_export_xls(): header = ["x", "y"] data = [ ["1", "2"], ["3", "4"], ["5,6", "7"], [None, None] ] dataset = tablib.Dataset(headers=header) for row in data: dataset.append([cell is not None and cell or "NULL" for cell in row]) # Check XLS response = make_response(header, data, "xls", "foo") assert_equal("application/xls", response["content-type"]) assert_equal(dataset.xls, response.content) assert_equal("attachment; filename=foo.xls", response["content-disposition"])
def test_export_xls_truncate_rows(): headers = ["a"] data = [["1"]] * (MAX_XLS_ROWS + 1) sheet = [headers] + data # Check XLS generator = create_generator(content_generator(headers, data), "xls") response = make_response(generator, "xls", "foo") assert_equal("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", response["content-type"]) sheet_data = _read_xls_sheet_data(response) assert_equal(len(sheet[:MAX_XLS_ROWS + 1]), len(sheet_data)) assert_equal("attachment; filename=foo.xlsx", response["content-disposition"])
def download(handle, format, db): """ download(query_model, format) -> HttpResponse Retrieve the query result in the format specified. Return an HttpResponse object. """ if format not in common.DL_FORMATS: LOG.error('Unknown download format "%s"' % (format,)) return content_generator = HS2DataAdapter(handle, db, conf.DOWNLOAD_ROW_LIMIT.get()) generator = export_csvxls.create_generator(content_generator, format) return export_csvxls.make_response(generator, format, 'query_result')
def download(results, format, collection): """ download(results, format) -> HttpResponse Transform the search result set to the specified format and download. """ if format not in DL_FORMATS: LOG.error('Unknown download format "%s"' % format) return content_generator = SearchDataAdapter(results, format, collection) generator = export_csvxls.create_generator(content_generator, format) return export_csvxls.make_response(generator, format, 'query_result')
def download(results, format, collection): """ download(results, format) -> HttpResponse Transform the search result set to the specified format and dwonload. """ if format not in DL_FORMATS: LOG.error('Unknown download format "%s"' % format) return content_generator = SearchDataAdapter(results, format, collection) generator = export_csvxls.create_generator(content_generator, format) return export_csvxls.make_response(generator, format, 'query_result')
def test_export_xls_truncate_cols(): headers = ["a"] * (MAX_XLS_COLS + 1) data = [["1"] * (MAX_XLS_COLS + 1)] dataset = tablib.Dataset(headers=headers[:MAX_XLS_COLS]) dataset.extend([data[0][:MAX_XLS_COLS]]) # Check XLS generator = create_generator(content_generator(headers, data), "xls") response = make_response(generator, "xls", "foo") assert_equal("application/xls", response["content-type"]) content = "".join(response.streaming_content) assert_equal(dataset.xls, content) assert_equal("attachment; filename=foo.xls", response["content-disposition"])
def test_export_xls(): header = ["x", "y"] data = [["1", "2"], ["3", "4"], ["5,6", "7"], [None, None]] dataset = tablib.Dataset(headers=header) for row in data: dataset.append([cell is not None and cell or "NULL" for cell in row]) # Check XLS response = make_response(header, data, "xls", "foo") assert_equal("application/xls", response["content-type"]) assert_equal(dataset.xls, response.content) assert_equal("attachment; filename=foo.xls", response["content-disposition"])
def test_export_xls(): headers = ["x", "y"] data = [["1", "2"], ["3", "4"], ["5,6", "7"], [None, None]] dataset = tablib.Dataset(headers=headers) for row in data: dataset.append([cell is not None and cell or "NULL" for cell in row]) # Check XLS generator = create_generator(content_generator(headers, data), "xls") response = make_response(generator, "xls", "foo") assert_equal("application/xls", response["content-type"]) content = "".join(response.streaming_content) assert_equal(dataset.xls, content) assert_equal("attachment; filename=foo.xls", response["content-disposition"])
def test_export_xls(): headers = ["x", "y"] data = [["1", "2"], ["3", "4"], ["5,6", "7"], [None, None]] sheet = [headers] + data # Check XLS generator = create_generator(content_generator(headers, data), "xls") response = make_response(generator, "xls", "foo") assert_equal("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", response["content-type"]) expected_data = [[cell is not None and cell or "NULL" for cell in row] for row in sheet] sheet_data = _read_xls_sheet_data(response) assert_equal(expected_data, sheet_data) assert_equal("attachment; filename=foo.xlsx", response["content-disposition"])
def test_export_xls(): headers = ["x", "y"] data = [ ["1", "2"], ["3", "4"], ["5,6", "7"], [None, None], ["http://gethue.com", "http://gethue.com"] ] sheet = [headers] + data # Check XLS generator = create_generator(content_generator(headers, data), "xls") response = make_response(generator, "xls", "foo") assert_equal("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", response["content-type"]) expected_data = [[cell is not None and cell.replace("http://gethue.com", '=HYPERLINK("http://gethue.com")') or "NULL" for cell in row] for row in sheet] sheet_data = _read_xls_sheet_data(response) assert_equal(expected_data, sheet_data) assert_equal('attachment; filename="foo.xlsx"', response["content-disposition"])
def test_export_xls_truncate_cols(): headers = ["a"] * (MAX_XLS_COLS + 1) data = [["1"] * (MAX_XLS_COLS + 1)] dataset = tablib.Dataset(headers=headers[:MAX_XLS_COLS]) dataset.extend([data[0][:MAX_XLS_COLS]]) # Check XLS generator = create_generator(content_generator(headers, data), "xls") response = make_response(generator, "xls", "foo") assert_equal("application/xls", response["content-type"]) content = ''.join(response.streaming_content) assert_equal(dataset.xls, content) assert_equal("attachment; filename=foo.xls", response["content-disposition"])
def download(handle, format, db): """ download(query_model, format) -> HttpResponse Retrieve the query result in the format specified. Return an HttpResponse object. """ if format not in common.DL_FORMATS: LOG.error('Unknown download format "%s"' % (format,)) return max_cells = conf.DOWNLOAD_CELL_LIMIT.get() content_generator = HS2DataAdapter(handle, db, max_cells=max_cells, start_over=True) generator = export_csvxls.create_generator(content_generator, format) return export_csvxls.make_response(generator, format, 'query_result')
def test_export_xls(): header = ["x", "y"] data = [ ["1", "2"], ["3", "4"], ["5,6", "7"], [None, None] ] dataset = tablib.Dataset(headers=header) for row in data: dataset.append([cell is not None and cell or "NULL" for cell in row]) # Check XLS generator = create_generator(content_generator(header, data), "xls") response = make_response(generator, "xls", "foo") assert_equal("application/xls", response["content-type"]) content = ''.join(response.streaming_content) assert_equal(dataset.xls, content) assert_equal("attachment; filename=foo.xls", response["content-disposition"])
def profile(self, appid, app_type, app_property, app_filters): if app_property == 'memory': return self._memory(appid, app_type, app_property, app_filters) elif app_property == 'profile': return self._query_profile(appid) elif app_property == 'download-profile': return export_csvxls.make_response( [self._query_profile(appid)['profile']], 'txt', 'query-profile_%s' % appid) elif app_property == 'backends': return self._query_backends(appid) elif app_property == 'finstances': return self._query_finstances(appid) else: return self._query(appid)
def test_export_xls_truncate_rows(): headers = ["a"] data = [["1"]] * (MAX_XLS_ROWS + 1) sheet = [headers] + data # Check XLS generator = create_generator(content_generator(headers, data), "xls") response = make_response(generator, "xls", "foo") assert_equal( "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", response["content-type"]) sheet_data = _read_xls_sheet_data(response) assert_equal(len(sheet[:MAX_XLS_ROWS + 1]), len(sheet_data)) assert_equal("attachment; filename=foo.xlsx", response["content-disposition"])
def test_export_xls_truncate_cols(): headers = [u"a"] * (MAX_XLS_COLS + 1) data = [[u"1"] * (MAX_XLS_COLS + 1)] sheet = [headers] + data # Check XLS generator = create_generator(content_generator(headers, data), "xls") response = make_response(generator, "xls", "foo") assert_equal("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", response["content-type"]) expected_data = [[cell is not None and cell or "NULL" for cell in row][:MAX_XLS_COLS] for row in sheet] sheet_data = _read_xls_sheet_data(response) sheet_data[0] = sheet_data[0][:MAX_XLS_COLS] sheet_data[1] = sheet_data[1][:MAX_XLS_COLS] assert_equal(len(expected_data), len(sheet_data)) assert_equal(len(expected_data[0]), len(sheet_data[0])) assert_equal(expected_data, sheet_data) assert_equal("attachment; filename=foo.xlsx", response["content-disposition"])
def test_export_xls_truncate_cols(): headers = [u"a"] * (MAX_XLS_COLS + 1) data = [[u"1"] * (MAX_XLS_COLS + 1)] sheet = [headers] + data # Check XLS generator = create_generator(content_generator(headers, data), "xls") response = make_response(generator, "xls", "foo") assert_equal( "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", response["content-type"]) expected_data = [[cell is not None and cell or "NULL" for cell in row][:MAX_XLS_COLS] for row in sheet] sheet_data = _read_xls_sheet_data(response) sheet_data[0] = sheet_data[0][:MAX_XLS_COLS] sheet_data[1] = sheet_data[1][:MAX_XLS_COLS] assert_equal(len(expected_data), len(sheet_data)) assert_equal(len(expected_data[0]), len(sheet_data[0])) assert_equal(expected_data, sheet_data) assert_equal("attachment; filename=foo.xlsx", response["content-disposition"])
if doc.type == 'notebook': try: from spark.models import Notebook zfile.writestr("notebook-%s-%s.txt" % (doc.name, doc.id), smart_str(Notebook(document=doc).get_str())) except Exception, e: LOG.exception(e) zfile.close() response = HttpResponse(content_type="application/zip") response["Content-Length"] = len(f.getvalue()) response[ 'Content-Disposition'] = 'attachment; filename="%s".zip' % filename response.write(f.getvalue()) return response else: return make_response(f.getvalue(), 'json', filename) @ensure_csrf_cookie def import_documents(request): def is_reserved_directory(doc): return doc['fields']['type'] == 'directory' and doc['fields'][ 'name'] in (Document2.HOME_DIR, Document2.TRASH_DIR) try: if request.FILES.get('documents'): documents = request.FILES['documents'].read() else: documents = json.loads(request.POST.get('documents')) documents = json.loads(documents)
try: from spark.models import Notebook zfile.writestr("notebook-%s-%s.txt" % (doc.name, doc.id), smart_str(Notebook(document=doc).get_str())) except Exception, e: print e LOG.exception(e) zfile.close() response = HttpResponse(content_type="application/zip") response["Content-Length"] = len(f.getvalue()) response[ 'Content-Disposition'] = 'attachment; filename="hue-documents.zip"' response.write(f.getvalue()) return response else: return make_response(f.getvalue(), 'json', 'hue-documents') def import_documents(request): if request.FILES.get('documents'): documents = request.FILES['documents'].read() else: documents = json.loads(request.POST.get('documents')) documents = json.loads(documents) docs = [] for doc in documents: if not request.user.is_superuser: doc['fields']['owner'] = [request.user.username] owner = doc['fields']['owner'][0]
try: from spark.models import Notebook zfile.writestr( "notebook-%s-%s.txt" % (doc.name, doc.id), smart_str(Notebook(document=doc).get_str()) ) except Exception, e: LOG.exception(e) zfile.close() response = HttpResponse(content_type="application/zip") response["Content-Length"] = len(f.getvalue()) response["Content-Disposition"] = 'attachment; filename="%s".zip' % filename response.write(f.getvalue()) return response else: return make_response(f.getvalue(), "json", filename) @ensure_csrf_cookie def import_documents(request): def is_reserved_directory(doc): return doc["fields"]["type"] == "directory" and doc["fields"]["name"] in ( Document2.HOME_DIR, Document2.TRASH_DIR, ) try: if request.FILES.get("documents"): documents = request.FILES["documents"].read() else: documents = json.loads(request.POST.get("documents"))
zfile.writestr("hue.json", f.getvalue()) for doc in docs: if doc.type == 'notebook': try: from spark.models import Notebook zfile.writestr("notebook-%s-%s.txt" % (doc.name, doc.id), smart_str(Notebook(document=doc).get_str())) except Exception, e: LOG.exception(e) zfile.close() response = HttpResponse(content_type="application/zip") response["Content-Length"] = len(f.getvalue()) response['Content-Disposition'] = 'attachment; filename="%s".zip' % filename response.write(f.getvalue()) return response else: return make_response(f.getvalue(), 'json', filename) @ensure_csrf_cookie def import_documents(request): def is_reserved_directory(doc): return doc['fields']['type'] == 'directory' and doc['fields']['name'] in (Document2.HOME_DIR, Document2.TRASH_DIR) try: if request.FILES.get('documents'): documents = request.FILES['documents'].read() else: documents = json.loads(request.POST.get('documents')) documents = json.loads(documents) except ValueError, e:
for doc in docs: if doc.type == 'notebook': try: from spark.models import Notebook zfile.writestr("notebook-%s-%s.txt" % (doc.name, doc.id), smart_str(Notebook(document=doc).get_str())) except Exception, e: print e LOG.exception(e) zfile.close() response = HttpResponse(content_type="application/zip") response["Content-Length"] = len(f.getvalue()) response['Content-Disposition'] = 'attachment; filename="hue-documents.zip"' response.write(f.getvalue()) return response else: return make_response(f.getvalue(), 'json', 'hue-documents') def import_documents(request): if request.FILES.get('documents'): documents = request.FILES['documents'].read() else: documents = json.loads(request.POST.get('documents')) documents = json.loads(documents) docs = [] for doc in documents: if not request.user.is_superuser: doc['fields']['owner'] = [request.user.username] owner = doc['fields']['owner'][0]
try: from spark.models import Notebook zfile.writestr( "notebook-%s-%s.txt" % (doc.name, doc.id), smart_str(Notebook(document=doc).get_str()) ) except Exception, e: LOG.exception(e) zfile.close() response = HttpResponse(content_type="application/zip") response["Content-Length"] = len(f.getvalue()) response["Content-Disposition"] = 'attachment; filename="hue-documents.zip"' response.write(f.getvalue()) return response else: return make_response(f.getvalue(), "json", "hue-documents") @ensure_csrf_cookie def import_documents(request): if request.FILES.get("documents"): documents = request.FILES["documents"].read() else: documents = json.loads(request.POST.get("documents")) documents = json.loads(documents) docs = [] uuids_map = dict((doc["fields"]["uuid"], None) for doc in documents) for doc in documents: