Example #1
0
    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,)
Example #2
0
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]