def _get_report_data(self, report_config, domain, start, limit, get_params): report = ConfigurableReportDataSource.from_spec(report_config) string_type_params = [ filter.name for filter in report_config.ui_filters if getattr(filter, 'datatype', 'string') == "string" ] filter_values = get_filter_values( report_config.ui_filters, query_dict_to_dict(get_params, domain, string_type_params) ) report.set_filter_values(filter_values) page = list(report.get_data(start=start, limit=limit)) columns = [] for column in report.columns: simple_column = { "header": column.header, "slug": column.slug, } if isinstance(column, UCRExpandDatabaseSubcolumn): simple_column['expand_column_value'] = column.expand_value columns.append(simple_column) total_records = report.get_total_records() return page, columns, total_records
def _get_report_data(self, report_config, domain, start, limit, get_params): report = ConfigurableReportDataSource.from_spec( report_config, include_prefilters=True) string_type_params = [ filter.name for filter in report_config.ui_filters if getattr(filter, 'datatype', 'string') == "string" ] filter_values = get_filter_values( report_config.ui_filters, query_dict_to_dict(get_params, domain, string_type_params)) report.set_filter_values(filter_values) page = list(report.get_data(start=start, limit=limit)) columns = [] for column in report.columns: simple_column = { "header": column.header, "slug": column.slug, } if isinstance(column, UCRExpandDatabaseSubcolumn): simple_column['expand_column_value'] = column.expand_value columns.append(simple_column) total_records = report.get_total_records() return page, columns, total_records
def get_ucr_data(report_config, date_filter, date_span): from corehq.apps.userreports.reports.view import get_filter_values data_source = ReportFactory.from_spec(report_config, include_prefilters=True) filter_params = get_date_params(date_filter['slug'], date_span) if date_filter else {} filter_values = get_filter_values(report_config.ui_filters, filter_params) data_source.set_filter_values(filter_values) return data_source.get_data()
def get_ucr_data(report_config, date_filter, date_span): from corehq.apps.userreports.reports.view import get_filter_values data_source = ConfigurableReportDataSource.from_spec(report_config, include_prefilters=True) filter_params = get_date_params(date_filter['slug'], date_span) if date_filter else {} filter_values = get_filter_values(report_config.ui_filters, filter_params) data_source.set_filter_values(filter_values) return data_source.get_data()
def _get_report_data(self, report_config, domain, start, limit, get_params): report = ReportFactory.from_spec(report_config) filter_values = get_filter_values( report_config.ui_filters, query_dict_to_dict(get_params, domain) ) report.set_filter_values(filter_values) page = list(report.get_data(start=start, limit=limit)) total_records = report.get_total_records() return page, total_records
def test_filter(self): slug = "hierarchy_filter_slug" filter_spec = { "type": "enikshay_location_hierarchy", "display": "location hierarchy", "datatype": "string", "slug": slug, "field": "does_not_matter", } data_source_config = DataSourceConfiguration( domain=self.domain, referenced_doc_type="", table_id="123", ) with patch( "corehq.apps.userreports.reports.data_source.get_datasource_config", MagicMock(return_value=(data_source_config, None)) ): report_config = ReportConfiguration( config_id="123", filters=[filter_spec] ) report = ReportFactory().from_spec(report_config) filter_values = get_filter_values( report_config.ui_filters, {slug: self.cto.location_id}, user=MagicMock(), ) report.set_filter_values(filter_values) expected_filter_vals = { '{}_sto'.format(slug): self.sto.location_id, '{}_cto'.format(slug): self.cto.location_id, '{}_below_cto'.format(slug): self.cto.location_id, } expected_filter = OR([ EQ("sto", "{}_sto".format(slug)), EQ("cto", "{}_cto".format(slug)), EQ("below_cto", "{}_below_cto".format(slug)) ]) self.assertEqual(len(report.data_source.filters), 1) self.assertFiltersEqual( report.data_source.filters[0], expected_filter ) self.assertEqual( report.data_source.filter_values, expected_filter_vals )
def ucr_report(self): spec = StaticReportConfiguration.by_id('static-%s-adherence' % self.domain) report = ReportFactory.from_spec( spec, include_prefilters=True ) filter_values = get_filter_values(spec.ui_filters, self.request_params, self.request.couch_user) locations_id = [ Choice(value=location_id, display='') for location_id in self.report_config.locations_id if location_id ] if locations_id: filter_values['village'] = locations_id report.set_filter_values(filter_values) return report
def _get_report_data(self, report_config, domain, start, limit, get_params): report = ReportFactory.from_spec(report_config) filter_values = get_filter_values( report_config.ui_filters, query_dict_to_dict(get_params, domain)) report.set_filter_values(filter_values) page = list(report.get_data(start=start, limit=limit)) columns = [] for column in report.columns: simple_column = { "header": column.header, "slug": column.slug, } if isinstance(column, UCRExpandDatabaseSubcolumn): simple_column['expand_column_value'] = column.expand_value columns.append(simple_column) total_records = report.get_total_records() return page, columns, total_records
def _get_report_data(self, report_config, domain, start, limit, get_params): report = ReportFactory.from_spec(report_config) filter_values = get_filter_values( report_config.ui_filters, query_dict_to_dict(get_params, domain) ) report.set_filter_values(filter_values) page = list(report.get_data(start=start, limit=limit)) columns = [] for column in report.columns: simple_column = { "header": column.header, "slug": column.slug, } if isinstance(column, UCRExpandDatabaseSubcolumn): simple_column['expand_column_value'] = column.expand_value columns.append(simple_column) total_records = report.get_total_records() return page, columns, total_records