Mercurial > piecrust2
view foodtruck/views/sources.py @ 593:2713b54b5d76
admin: Add summary of page in source listing.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 19 Jan 2016 21:33:31 -0800 |
parents | d4a01a023998 |
children | efc1dc916e7c |
line wrap: on
line source
from flask import g, abort, render_template, url_for from flask.ext.login import login_required from piecrust.data.paginator import Paginator from ..textutil import text_preview, html_to_text from ..views import with_menu_context from ..web import app @app.route('/list/<source_name>/', defaults={'page_num': 1}) @app.route('/list/<source_name>/<int:page_num>') @login_required def list_source(source_name, page_num): site = g.sites.get().piecrust_app source = site.getSource(source_name) if source is None: abort(400) i = 0 data = {'title': "List %s" % source_name} data['pages'] = [] pgn = Paginator(None, source, page_num=page_num, items_per_page=20) for p in pgn.items: page_data = { 'title': p['title'], 'slug': p['slug'], 'source': source_name, 'url': url_for('edit_page', slug=p['slug']), 'text': text_preview(html_to_text(p['content']), length=300)} data['pages'].append(page_data) prev_page_url = None if pgn.prev_page_number: prev_page_url = url_for( 'list_source', source_name=source_name, page_num=pgn.prev_page_number) next_page_url = None if pgn.next_page_number: next_page_url = url_for( 'list_source', source_name=source_name, page_num=pgn.next_page_number) page_urls = [] for i in pgn.all_page_numbers(7): url = None if i != page_num: url = url_for('list_source', source_name=source_name, page_num=i) page_urls.append({'num': i, 'url': url}) data['pagination'] = { 'prev_page': prev_page_url, 'next_page': next_page_url, 'nums': page_urls } with_menu_context(data) return render_template('list_source.html', **data)