Skip to content

Commit

Permalink
Merge branch 'master' into vliu_dualaxis_bug
Browse files Browse the repository at this point in the history
  • Loading branch information
vera-liu committed Jan 11, 2017
2 parents e76f10f + 2d866e3 commit 4badac3
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 27 deletions.
@@ -1,11 +1,11 @@
import React, { PropTypes } from 'react';
import Select, { Creatable } from 'react-select';


const propTypes = {
choices: PropTypes.array,
clearable: PropTypes.bool,
description: PropTypes.string,
editUrl: PropTypes.string,
freeForm: PropTypes.bool,
label: PropTypes.string,
multi: PropTypes.bool,
Expand All @@ -18,6 +18,7 @@ const defaultProps = {
choices: [],
clearable: true,
description: null,
editUrl: null,
freeForm: false,
label: null,
multi: false,
Expand Down Expand Up @@ -89,6 +90,9 @@ export default class SelectField extends React.Component {
return (
<div>
{selectWrap}
{this.props.editUrl &&
<a href={`${this.props.editUrl}/${this.props.value}`}>edit</a>
}
</div>
);
}
Expand Down
1 change: 1 addition & 0 deletions superset/assets/javascripts/explorev2/stores/fields.js
Expand Up @@ -31,6 +31,7 @@ export const fields = {
label: 'Datasource',
clearable: false,
default: null,
editUrl: '/tablemodelview/edit',
mapStateToProps: (state) => ({
choices: state.datasources || [],
}),
Expand Down
7 changes: 5 additions & 2 deletions superset/models.py
Expand Up @@ -169,7 +169,7 @@ def _user_link(self, user):
if not user:
return ''
url = '/superset/profile/{}/'.format(user.username)
return '<a href="{}">{}</a>'.format(url, escape(user) or '')
return Markup('<a href="{}">{}</a>'.format(url, escape(user) or ''))

@renders('created_by')
def creator(self): # noqa
Expand Down Expand Up @@ -2586,6 +2586,8 @@ def wrapper(*args, **kwargs):
except:
pass
value = f(*args, **kwargs)

sesh = db.session()
log = cls(
action=f.__name__,
json=params,
Expand All @@ -2595,7 +2597,8 @@ def wrapper(*args, **kwargs):
datetime.now() - start_dttm).total_seconds() * 1000,
referrer=request.referrer[:1000] if request.referrer else None,
user_id=user_id)
db.session.flush()
sesh.add(log)
sesh.commit()
return value
return wrapper

Expand Down
26 changes: 13 additions & 13 deletions superset/viz.py
Expand Up @@ -1187,19 +1187,6 @@ def get_df(self, query_obj=None):
dft = df.T
df = (dft / dft.sum()).T

num_period_compare = form_data.get("num_period_compare")
if num_period_compare:
num_period_compare = int(num_period_compare)
prt = form_data.get('period_ratio_type')
if prt and prt == 'growth':
df = (df / df.shift(num_period_compare)) - 1
elif prt and prt == 'value':
df = df - df.shift(num_period_compare)
else:
df = df / df.shift(num_period_compare)

df = df[num_period_compare:]

rolling_periods = form_data.get("rolling_periods")
rolling_type = form_data.get("rolling_type")

Expand All @@ -1212,6 +1199,19 @@ def get_df(self, query_obj=None):
df = pd.rolling_sum(df, int(rolling_periods), min_periods=0)
elif rolling_type == 'cumsum':
df = df.cumsum()

num_period_compare = form_data.get("num_period_compare")
if num_period_compare:
num_period_compare = int(num_period_compare)
prt = form_data.get('period_ratio_type')
if prt and prt == 'growth':
df = (df / df.shift(num_period_compare)) - 1
elif prt and prt == 'value':
df = df - df.shift(num_period_compare)
else:
df = df / df.shift(num_period_compare)

df = df[num_period_compare:]
return df

def to_series(self, df, classed='', title_suffix=''):
Expand Down
14 changes: 9 additions & 5 deletions tests/core_tests.py
Expand Up @@ -59,16 +59,20 @@ def test_slice_endpoint(self):
'/superset/slice/{}/?standalone=true'.format(slc.id))
assert 'List Roles' not in resp

def test_endpoints_for_a_slice(self):
def test_slice_json_endpoint(self):
self.login(username='admin')
slc = self.get_slice("Girls", db.session)

resp = self.get_resp(slc.viz.csv_endpoint)
assert 'Jennifer,' in resp

resp = self.get_resp(slc.viz.json_endpoint)
assert '"Jennifer"' in resp

def test_slice_csv_endpoint(self):
self.login(username='admin')
slc = self.get_slice("Girls", db.session)

resp = self.get_resp(slc.viz.csv_endpoint)
assert 'Jennifer,' in resp

def test_admin_only_permissions(self):
def assert_admin_permission_in(role_name, assert_func):
role = sm.find_role(role_name)
Expand Down Expand Up @@ -466,14 +470,14 @@ def test_templated_sql_json(self):

def test_table_metadata(self):
maindb = self.get_main_database(db.session)
backend = maindb.backend
data = self.get_json_resp(
"/superset/table/{}/ab_user/null/".format(maindb.id))
self.assertEqual(data['name'], 'ab_user')
assert len(data['columns']) > 5
assert data.get('selectStar').startswith('SELECT')

# Engine specific tests
backend = maindb.backend
if backend in ('mysql', 'postgresql'):
self.assertEqual(data.get('primaryKey').get('type'), 'pk')
self.assertEqual(
Expand Down
12 changes: 6 additions & 6 deletions tests/sqllab_tests.py
Expand Up @@ -133,19 +133,19 @@ def test_search_query_on_user(self):
self.login('admin')

# Test search queries on user Id
user = appbuilder.sm.find_user('admin')
user_id = appbuilder.sm.find_user('admin').id
data = self.get_json_resp(
'/superset/search_queries?user_id={}'.format(user.id))
'/superset/search_queries?user_id={}'.format(user_id))
self.assertEquals(2, len(data))
user_ids = {k['userId'] for k in data}
self.assertEquals(set([user.id]), user_ids)
self.assertEquals(set([user_id]), user_ids)

user = appbuilder.sm.find_user('gamma_sqllab')
user_id = appbuilder.sm.find_user('gamma_sqllab').id
resp = self.get_resp(
'/superset/search_queries?user_id={}'.format(user.id))
'/superset/search_queries?user_id={}'.format(user_id))
data = json.loads(resp)
self.assertEquals(1, len(data))
self.assertEquals(data[0]['userId'] , user.id)
self.assertEquals(data[0]['userId'] , user_id)

def test_search_query_on_status(self):
self.run_some_queries()
Expand Down

0 comments on commit 4badac3

Please sign in to comment.