Export to csv or json

This commit is contained in:
Maxime Beauchemin 2015-12-17 18:04:53 -08:00
parent 31dd5bf1b3
commit 5f6236c80b
3 changed files with 28 additions and 0 deletions

View File

@ -36,6 +36,13 @@
<span class="btn btn-info pull-right disabled query"
data-toggle="modal" data-target="#query_modal">query</span>
<span class="btn btn-warning pull-right notbtn" id="timer">0 sec</span>
<div class="btn-group pull-right" role="group">
<span class="btn btn-default disabled">
<i class="fa fa-file-text"></i>
</span>
<span class="btn btn-default" id="csv">.csv</span>
<span class="btn btn-default" id="json">.json</span>
</div>
<hr/>
</div>
<div class="row">
@ -229,6 +236,12 @@
$('legend').click(function () {
toggle_fieldset($(this), true);
});
$('#json').click(function () {
window.location = '{{ viz.json_endpoint | safe }}';
});
$('#csv').click(function () {
window.location = '{{ viz.csv_endpoint | safe }}';
});
$("#viz_type").change(function() {$("#query").submit();});
collapsed_fieldsets = get_collapsed_fieldsets();
for(var i=0; i<collapsed_fieldsets.length;i++){

View File

@ -399,6 +399,13 @@ class Panoramix(BaseView):
obj = viz.viz_types[viz_type](
datasource,
form_data=request.args)
if request.args.get("csv") == "true":
status = 200
payload = obj.get_csv()
return Response(
payload,
status=status,
mimetype="application/csv")
if request.args.get("json") == "true":
status = 200
if config.get("DEBUG"):

View File

@ -208,6 +208,10 @@ class BaseViz(object):
}
return json.dumps(payload)
def get_csv(self):
df = self.get_df()
return df.to_csv(index=False)
def get_json_data(self):
return json.dumps([])
@ -215,6 +219,10 @@ class BaseViz(object):
def json_endpoint(self):
return self.get_url(json="true")
@property
def csv_endpoint(self):
return self.get_url(csv="true")
def get_data_attribute(self):
content = {
'viz_name': self.viz_type,