def index_view(self): # Grab parameters from URL page, sort_idx, sort_desc, search = self._get_list_extra_args() page_size = 10 count = Cluster._get_collection().count() num_pages = count // page_size if count % page_size != 0: num_pages += 1 data = Cluster._get_collection().find( {}, {}).skip(page * page_size).limit(page_size) # Various URL generation helpers def pager_url(p): # Do not add page number if it is first page if p == 0: p = None return self._get_url('.index_view', p, sort_idx, sort_desc, search) return self.render('admin/shreds.html', data=data, count=count, pager_url=pager_url, num_pages=num_pages, page=page,)
def list_batches(): batch_counts = Cluster._get_collection().aggregate([ { '$group': { '_id': '$batch', 'shreds_created': { '$sum': 1} } }, { '$sort': { 'name': 1, }, }])['result'] return [{'name': item['_id'], 'shreds_created': item['shreds_created']} for item in batch_counts]