示例#1
0
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'])
示例#2
0
 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)
示例#3
0
文件: test_utils.py 项目: 18F/openFEC
 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])
示例#4
0
文件: utils.py 项目: 18F/openFEC
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'])