Allow downloading CSV by query id and not just query_result id.

This commit is contained in:
Arik Fraimovich
2014-01-04 11:21:52 +02:00
parent 52888c4724
commit b1f9995ce2
2 changed files with 9 additions and 4 deletions

View File

@@ -252,8 +252,13 @@ class QueryResultsHandler(BaseAuthenticatedHandler):
class CsvQueryResultsHandler(BaseAuthenticatedHandler): class CsvQueryResultsHandler(BaseAuthenticatedHandler):
def get(self, query_result_id): def get(self, query_id, result_id=None):
query_result = self.data_manager.get_query_result_by_id(query_result_id) if not result_id:
query = data.models.Query.objects.get(pk=query_id)
if query:
result_id = query.latest_query_data_id
query_result = result_id and self.data_manager.get_query_result_by_id(result_id)
if query_result: if query_result:
self.set_header("Content-Type", "text/csv; charset=UTF-8") self.set_header("Content-Type", "text/csv; charset=UTF-8")
s = cStringIO.StringIO() s = cStringIO.StringIO()
@@ -291,10 +296,10 @@ class JobsHandler(BaseAuthenticatedHandler):
def get_application(static_path, is_debug, redis_connection, data_manager): def get_application(static_path, is_debug, redis_connection, data_manager):
return tornado.web.Application([(r"/", MainHandler), return tornado.web.Application([(r"/", MainHandler),
(r"/ping", PingHandler), (r"/ping", PingHandler),
(r"/api/queries/([0-9]*)/results(?:/([0-9]*))?.csv", CsvQueryResultsHandler),
(r"/api/queries/format", QueryFormatHandler), (r"/api/queries/format", QueryFormatHandler),
(r"/api/queries(?:/([0-9]*))?", QueriesHandler), (r"/api/queries(?:/([0-9]*))?", QueriesHandler),
(r"/api/query_results(?:/([0-9]*))?", QueryResultsHandler), (r"/api/query_results(?:/([0-9]*))?", QueryResultsHandler),
(r"/api/query_results/(.*?).csv", CsvQueryResultsHandler),
(r"/api/jobs/(.*)", JobsHandler), (r"/api/jobs/(.*)", JobsHandler),
(r"/api/widgets(?:/([0-9]*))?", WidgetsHandler), (r"/api/widgets(?:/([0-9]*))?", WidgetsHandler),
(r"/api/dashboards(?:/(.*))?", DashboardHandler), (r"/api/dashboards(?:/(.*))?", DashboardHandler),

View File

@@ -139,7 +139,7 @@
if ($scope.queryResult.getId() == null) { if ($scope.queryResult.getId() == null) {
$scope.dataUri = ""; $scope.dataUri = "";
} else { } else {
$scope.dataUri = '/api/query_results/' + $scope.queryResult.getId() + '.csv'; $scope.dataUri = '/api/queries/' + $scope.query.id + '/results/' + $scope.queryResult.getId() + '.csv';
$scope.dataFilename = $scope.query.name.replace(" ", "_") + moment($scope.queryResult.getUpdatedAt()).format("_YYYY_MM_DD") + ".csv"; $scope.dataFilename = $scope.query.name.replace(" ", "_") + moment($scope.queryResult.getUpdatedAt()).format("_YYYY_MM_DD") + ".csv";
} }
}); });