def fetch_page(query, kwargs, model=None, aliases=None, join_columns=None, clear=False, count=None, cap=100, index_column=None, multi=False): check_cap(kwargs, cap) sort, hide_null, reverse_nulls = kwargs.get('sort'), kwargs.get( 'sort_hide_null'), kwargs.get('sort_reverse_nulls') if sort and multi: query, _ = sorting.multi_sort(query, sort, model=model, aliases=aliases, join_columns=join_columns, clear=clear, hide_null=hide_null, index_column=index_column) elif sort: query, _ = sorting.sort(query, sort, model=model, aliases=aliases, join_columns=join_columns, clear=clear, hide_null=hide_null, index_column=index_column) paginator = paginators.OffsetPaginator(query, kwargs['per_page'], count=count) return paginator.get_page(kwargs['page'])
def test_multi_column(self): audit = [ factories.AuditCaseFactory( cycle=2012, committee_name='Boy', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000, ), factories.AuditCaseFactory( cycle=2012, committee_name='Girl', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000, ), factories.AuditCaseFactory( cycle=2012, committee_name='Ted', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000, ), factories.AuditCaseFactory( cycle=2012, committee_name='Zoo', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000, ), factories.AuditCaseFactory( cycle=2014, committee_name='Abc', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000, ), factories.AuditCaseFactory( cycle=2014, committee_name='John', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000, ), factories.AuditCaseFactory( cycle=2014, committee_name='Ted', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000, ), ] query, columns = sorting.multi_sort(models.AuditCase.query, [ 'cycle', 'committee_name', ], model=models.AuditCase) self.assertEqual(query.all(), audit)
def test_multi_column_reverse_first_column(self): audit = [ factories.AuditCaseFactory(cycle=2012, committee_name='Zoo', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000), factories.AuditCaseFactory(cycle=2012, committee_name='Ted', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000), factories.AuditCaseFactory(cycle=2012, committee_name='Girl', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000), factories.AuditCaseFactory(cycle=2012, committee_name='Abc', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000), factories.AuditCaseFactory(cycle=2014, committee_name='Ted', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000), factories.AuditCaseFactory(cycle=2014, committee_name='John', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000), factories.AuditCaseFactory(cycle=2014, committee_name='Abc', primary_category_id=-1, sub_category_id=-2, audit_case_id=1000), ] query, columns = sorting.multi_sort(models.AuditCase.query, ['-cycle', 'committee_name', ], model=models.AuditCase) self.assertEqual(query.all(), audit[::-1])
def fetch_page(query, kwargs, model=None, aliases=None, join_columns=None, clear=False, count=None, cap=100, index_column=None, multi=False): check_cap(kwargs, cap) sort, hide_null, reverse_nulls = kwargs.get('sort'), kwargs.get('sort_hide_null'), kwargs.get('sort_reverse_nulls') if sort and multi: query, _ = sorting.multi_sort( query, sort, model=model, aliases=aliases, join_columns=join_columns, clear=clear, hide_null=hide_null, index_column=index_column ) elif sort: query, _ = sorting.sort( query, sort, model=model, aliases=aliases, join_columns=join_columns, clear=clear, hide_null=hide_null, index_column=index_column ) paginator = paginators.OffsetPaginator(query, kwargs['per_page'], count=count) return paginator.get_page(kwargs['page'])