diff --git a/superset/assets/javascripts/explore/components/controls/SelectControl.jsx b/superset/assets/javascripts/explore/components/controls/SelectControl.jsx index 6998c071b0e92..312fced55bb33 100644 --- a/superset/assets/javascripts/explore/components/controls/SelectControl.jsx +++ b/superset/assets/javascripts/explore/components/controls/SelectControl.jsx @@ -43,7 +43,8 @@ export default class SelectControl extends React.PureComponent { this.onChange = this.onChange.bind(this); } componentWillReceiveProps(nextProps) { - if (nextProps.choices !== this.props.choices) { + if (nextProps.choices !== this.props.choices || + nextProps.options !== this.props.options) { const options = this.getOptions(nextProps); this.setState({ options }); } diff --git a/superset/assets/javascripts/explore/stores/controls.jsx b/superset/assets/javascripts/explore/stores/controls.jsx index 13306932ce013..ecfbfe9e64251 100644 --- a/superset/assets/javascripts/explore/stores/controls.jsx +++ b/superset/assets/javascripts/explore/stores/controls.jsx @@ -326,7 +326,7 @@ export const controls = { valueRenderer: c => , valueKey: 'column_name', mapStateToProps: state => ({ - options: (state.datasource) ? state.datasource.columns : [], + options: (state.datasource) ? state.datasource.columns.filter(c => c.groupby) : [], }), }, diff --git a/superset/connectors/base/models.py b/superset/connectors/base/models.py index 9869ec9805567..b32bb928a3c38 100644 --- a/superset/connectors/base/models.py +++ b/superset/connectors/base/models.py @@ -224,7 +224,7 @@ def expression(self): def data(self): attrs = ( 'column_name', 'verbose_name', 'description', 'expression', - 'filterable') + 'filterable', 'groupby') return {s: getattr(self, s) for s in attrs}