Getting filters to a reasonable place

This commit is contained in:
Maxime Beauchemin 2015-12-22 15:52:15 -08:00
parent e0586ec666
commit 8682196eb8
4 changed files with 10 additions and 6 deletions

View File

@ -403,6 +403,7 @@ class FormFactory(object):
css_classes = field_css_classes css_classes = field_css_classes
standalone = HiddenField() standalone = HiddenField()
async = HiddenField() async = HiddenField()
extra_filters = HiddenField()
json = HiddenField() json = HiddenField()
slice_id = HiddenField() slice_id = HiddenField()
slice_name = HiddenField() slice_name = HiddenField()

View File

@ -508,7 +508,6 @@ class SqlaTable(Model, Queryable, AuditMixinNullable):
con=engine con=engine
) )
sql = sqlparse.format(sql, reindent=True) sql = sqlparse.format(sql, reindent=True)
print(sql)
return QueryResult( return QueryResult(
df=df, duration=datetime.now() - qry_start_dttm, query=sql) df=df, duration=datetime.now() - qry_start_dttm, query=sql)

View File

@ -30,11 +30,7 @@ var px = (function() {
if (dashboard !== undefined){ if (dashboard !== undefined){
for (var f in dashboard.filters) { for (var f in dashboard.filters) {
if (slice_id !== f){ if (slice_id !== f){
form_data[dashboard.filters[f][0]] = dashboard.filters[f][1]; form_data['extra_filters'] = JSON.stringify(dashboard.filters)
form_data['flt_col_1'] = dashboard.filters[f][0];
form_data['flt_op_1'] = 'in';
form_data['flt_eq_1'] = dashboard.filters[f][1][0];
//form_data['extra_filters'] = JSON.stringify(dashboard.filters)
} }
} }
} }

View File

@ -156,6 +156,14 @@ class BaseViz(object):
eq = form_data.get("flt_eq_" + str(i)) eq = form_data.get("flt_eq_" + str(i))
if col and op and eq: if col and op and eq:
filters.append((col, op, eq)) filters.append((col, op, eq))
# Extra filters (coming from dashboard)
extra_filters = form_data.get('extra_filters', [])
if extra_filters:
extra_filters = json.loads(extra_filters)
for slice_id, (col, vals) in extra_filters.items():
filters += [(col, 'in', ",".join(vals))]
return filters return filters
def query_obj(self): def query_obj(self):