def from_spec(cls, spec): from corehq.apps.userreports.reports.data_source import ConfigurableReportDataSource return ConfigurableReportDataSource( domain=spec.domain, config_or_config_id=spec.config_id, filters=[ReportFilter.wrap(f) for f in spec.filters], aggregation_columns=spec.aggregation_columns, columns=[ReportColumn.wrap(colspec) for colspec in spec.columns], )
def from_spec(cls, spec): from corehq.apps.userreports.reports.data_source import ConfigurableReportDataSource return ConfigurableReportDataSource( domain=spec.domain, config_or_config_id=spec.config_id, filters=[ReportFilter.wrap(f) for f in spec.filters], aggregation_columns=spec.aggregation_columns, columns=spec.report_columns, )
def test_numeric_filter_value(self): filter = ReportFilter.wrap( { "type": "numeric", "field": "number_of_children_field", "slug": "number_of_children_slug", "display": "Number of Children", } ) NumericFilterValue(filter, None) NumericFilterValue(filter, {"operator": "<", "operand": 3}) with self.assertRaises(AssertionError): NumericFilterValue(filter, {"operator": "sql injection", "operand": 3})
def test_numeric_filter_value(self): filter = ReportFilter.wrap({ "type": "numeric", "field": "number_of_children_field", "slug": "number_of_children_slug", "display": "Number of Children", }) NumericFilterValue(filter, None) NumericFilterValue(filter, {'operator': '<', 'operand': 3}) with self.assertRaises(AssertionError): NumericFilterValue(filter, { 'operator': 'sql injection', 'operand': 3 })
def get_query_value(compare_as_string): spec = { "type": "date", "field": "modified_on_field", "slug": "my_slug", "display": "date Modified", "compare_as_string": compare_as_string, } reports_core_filter = ReportFilterFactory.from_spec(spec) reports_core_value = reports_core_filter.get_value( {"my_slug-start": "2015-06-07", "my_slug-end": "2015-06-08"} ) filter = ReportFilter.wrap(spec) return filter.create_filter_value(reports_core_value).to_sql_values()
def get_query_value(compare_as_string): spec = { "type": "date", "field": "modified_on_field", "slug": "my_slug", "display": "date Modified", "compare_as_string": compare_as_string, } reports_core_filter = ReportFilterFactory.from_spec(spec) reports_core_value = reports_core_filter.get_value({ "my_slug-start": "2015-06-07", "my_slug-end": "2015-06-08", }) filter = ReportFilter.wrap(spec) return filter.create_filter_value( reports_core_value).to_sql_values()