Mercurial > piecrust2
view piecrust/admin/views/sources.py @ 853:f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
The asset pipeline is still the only function pipeline at this point.
* No more `QualifiedPage`, and several other pieces of code deleted.
* Data providers are simpler and more focused. For instance, the page iterator
doesn't try to support other types of items.
* Route parameters are proper known source metadata to remove the confusion
between the two.
* Make the baker and pipeline more correctly manage records and record
histories.
* Add support for record collapsing and deleting stale outputs in the asset
pipeline.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 21 May 2017 00:06:59 -0700 |
parents | 82509bce94ca |
children | dcdec4b951a1 |
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 ..blueprint import foodtruck_bp from ..views import with_menu_context @foodtruck_bp.route('/list/<source_name>/', defaults={'page_num': 1}) @foodtruck_bp.route('/list/<source_name>/<int:page_num>') @login_required def list_source(source_name, page_num): site = g.site.piecrust_app source = site.getSource(source_name) if source is None: abort(400) i = 0 default_author = site.config.get('site/author') 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'], 'author': p.get('author', default_author), 'slug': p['slug'], 'timestamp': p['timestamp'], 'tags': p.get('tags', []), 'category': p.get('category'), 'source': source_name, 'url': url_for('.edit_page', slug=p['slug']) } 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)