def get_expanded_column_config(data_source_configuration, column_config, lang): """ Given an ExpandedColumn, return a list of Column-like objects. Each column is configured to show the number of occurrences of one of the values present for the ExpandedColumn's field. This function also adds warnings to the column_warnings parameter. :param data_source_configuration: :param column_config: :param column_warnings: :return: """ column_warnings = [] try: vals, over_expansion_limit = get_distinct_values( data_source_configuration, column_config, column_config.max_expansion) except ColumnNotFoundError as e: return ColumnConfig([], warnings=[str(e)]) if over_expansion_limit: column_warnings.append( _('The "{header}" column had too many values to expand! ' 'Expansion limited to {max} distinct values.').format( header=column_config.get_header(lang), max=column_config.max_expansion, )) from corehq.apps.userreports.sql.columns import expand_column column = expand_column(column_config, vals, lang) return ColumnConfig(column, warnings=column_warnings)
def get_expanded_column_config(data_source_configuration, column_config, lang): """ Given an ExpandedColumn, return a list of Column-like objects. Each column is configured to show the number of occurrences of one of the values present for the ExpandedColumn's field. This function also adds warnings to the column_warnings parameter. :param data_source_configuration: :param column_config: :param column_warnings: :return: """ column_warnings = [] try: vals, over_expansion_limit = get_distinct_values( data_source_configuration, column_config, column_config.max_expansion ) except ColumnNotFoundError as e: return ColumnConfig([], warnings=[six.text_type(e)]) if over_expansion_limit: column_warnings.append(_( 'The "{header}" column had too many values to expand! ' 'Expansion limited to {max} distinct values.' ).format( header=column_config.get_header(lang), max=column_config.max_expansion, )) from corehq.apps.userreports.sql.columns import expand_column column = expand_column(column_config, vals, lang) return ColumnConfig(column, warnings=column_warnings)
def test_expansion(self): column = ReportColumnFactory.from_spec( dict(type="expanded", field="lab_result", display="Lab Result", format="default", description="foo")) cols = expand_column(column, ["positive", "negative"], "en") self.assertEqual(len(cols), 2) self.assertEqual(type(cols[0].view), SumWhen) self.assertEqual(cols[1].view.whens, {'negative': 1})
def test_expansion(self): column = ReportColumnFactory.from_spec(dict( type="expanded", field="lab_result", display="Lab Result", format="default", description="foo" )) cols = expand_column(column, ["positive", "negative"], "en") self.assertEqual(len(cols), 2) self.assertEqual(type(cols[0].view), SumWhen) self.assertEqual(cols[1].view.whens, {'negative': 1})