def order_by(self): order_by_columns = self.get_columns_by_loc_level order_by = [] for column in order_by_columns: order_by.append(OrderBy(column.slug)) order_by.append(OrderBy('aggregation_level')) return order_by
def test_order_by(self): self.assertEqual(str(OrderBy('column_1').build_expression()), 'column_1 ASC') self.assertEqual( str(OrderBy('column_1', is_ascending=True).build_expression()), 'column_1 ASC') self.assertEqual( str(OrderBy('column_1', is_ascending=False).build_expression()), 'column_1 DESC')
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) ]
def order_by(self): # allow throwing exception if the report explicitly sorts on an unsortable column type 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) ] elif self.top_level_columns: try: return [ OrderBy(order_by, is_ascending=True) for order_by in self.get_db_column_ids(self.top_level_columns[0].column_id) ] except InvalidQueryColumn: pass return []
def test_distinct_on(self): vc = QueryContext( "user_table", distinct_on=['user', 'year'], order_by=[OrderBy('user'), OrderBy('year'), OrderBy('date', is_ascending=False)], group_by=['user', 'date'] ) vc.append_column(SimpleColumn('user')) vc.append_column(YearColumn('date', alias='year')) vc.append_column(SimpleColumn('indicator_a')) result = vc.resolve(self.session.connection()) self.assertEquals(result, { ('user1', datetime.date(2013, 2, 1)): {'user': '******', 'year': 2013.0, 'indicator_a': 3, 'date': datetime.date(2013, 2, 1)}, ('user2', datetime.date(2013, 3, 1)): {'user': '******', 'year': 2013.0, 'indicator_a': 2, 'date': datetime.date(2013, 3, 1)} })
def order_by(self): return [OrderBy('submitted_on')]
def order_by(self): return [OrderBy('username')]
def order_by(self): return [OrderBy('month')]
def order_by(self): return [OrderBy('person_name')]
def order_by(self): return [OrderBy(self.loc_level)]