Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @login_required()
- def browse(self, id):
- schema = validation.FolderBrowse()
- try:
- data = schema.to_python(request.GET)
- except formencode.Invalid, error:
- abort(500)
- # Count how much children we have for a given container
- t = meta.table.content
- q_count_children = sql.select([
- t.c.container_id, sql.func.count('*').label('cpt')
- ]).group_by(t.c.container_id).alias('count_children')
- # Filter results
- sort_by = data['sort']
- if sort_by == 'date':
- sort_by = sql.func.coalesce(model.Content.updated,
- model.Content.added)
- elif sort_by == 'type':
- sort_by = model.Content.content_type_id
- else:
- sort_by = sql.column(sort_by)
- if data['order'] == 'desc':
- sort_by = sort_by.desc()
- # Query database
- c.results = meta.Session.query(model.Content, q_count_children.c.cpt).\
- outerjoin(q_count_children).\
- filter(model.Content.container_id == id).\
- order_by(sort_by).offset(data['offset']).\
- limit(data['limit'])
- return render('folder/_browse.html')
Add Comment
Please, Sign In to add comment