Skip to content

Commit

Permalink
Merge pull request #26883 from dimagi/mk/add-sort-to-custom-data-source
Browse files Browse the repository at this point in the history
enable order for custom data source
  • Loading branch information
mkangia committed Mar 18, 2020
2 parents 6195982 + 4c0abf4 commit 99a351e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
13 changes: 12 additions & 1 deletion corehq/apps/userreports/custom/data_source.py
Expand Up @@ -3,15 +3,17 @@
from django.utils.decorators import method_decorator

from memoized import memoized
from sqlagg.sorting import OrderBy

from corehq.sql_db.connections import connection_manager
from dimagi.utils.modules import to_function

from corehq.apps.reports.api import ReportDataSource
from corehq.apps.reports.sqlreport import DataFormatter, DictDataFormat
from corehq.apps.userreports.decorators import catch_and_raise_exceptions
from corehq.apps.userreports.mixins import ConfigurableReportDataSourceMixin
from corehq.apps.userreports.reports.sorting import ASCENDING
from corehq.apps.userreports.util import get_indicator_adapter
from corehq.sql_db.connections import connection_manager


class ConfigurableReportCustomDataSource(ConfigurableReportDataSourceMixin, ReportDataSource):
Expand Down Expand Up @@ -59,6 +61,15 @@ def get_total_records(self):
def get_total_row(self):
return self._provider.get_total_row()

@property
def order_by(self):
if self._order_by:
return [
OrderBy(order_by, is_ascending=(order == ASCENDING))
for sort_column_id, order in self._order_by
for order_by in self.get_db_column_ids(sort_column_id)
]


class ConfigurableReportCustomSQLDataSourceHelper(object):
def __init__(self, report_data_source):
Expand Down
3 changes: 1 addition & 2 deletions custom/icds_reports/reports/ucr.py
Expand Up @@ -60,8 +60,7 @@ def get_select_query(self):
self.table.name,
filters=split_filters['inner'],
group_by=self.report_data_source.group_by,
# note: is this necessary to add?
# order_by=self.order_by,
order_by=self.report_data_source.order_by,
)
for c in self.report_data_source.columns:
query_context.append_column(c.view)
Expand Down

0 comments on commit 99a351e

Please sign in to comment.