Mercurial > piecrust2
comparison foodtruck/views/sources.py @ 587:d4a01a023998
admin: Add "FoodTruck" admin panel from the side experiment project.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 16 Jan 2016 14:24:35 -0800 |
parents | |
children | 2713b54b5d76 |
comparison
equal
deleted
inserted
replaced
586:59268b4d8c71 | 587:d4a01a023998 |
---|---|
1 from flask import g, abort, render_template, url_for | |
2 from flask.ext.login import login_required | |
3 from piecrust.data.paginator import Paginator | |
4 from ..views import with_menu_context | |
5 from ..web import app | |
6 | |
7 | |
8 @app.route('/list/<source_name>/', defaults={'page_num': 1}) | |
9 @app.route('/list/<source_name>/<int:page_num>') | |
10 @login_required | |
11 def list_source(source_name, page_num): | |
12 site = g.sites.get().piecrust_app | |
13 source = site.getSource(source_name) | |
14 if source is None: | |
15 abort(400) | |
16 | |
17 i = 0 | |
18 data = {'title': "List %s" % source_name} | |
19 data['pages'] = [] | |
20 pgn = Paginator(None, source, page_num=page_num, items_per_page=20) | |
21 for p in pgn.items: | |
22 page_data = { | |
23 'title': p['title'], | |
24 'slug': p['slug'], | |
25 'source': source_name, | |
26 'url': url_for('edit_page', slug=p['slug'])} | |
27 data['pages'].append(page_data) | |
28 | |
29 prev_page_url = None | |
30 if pgn.prev_page_number: | |
31 prev_page_url = url_for( | |
32 'list_source', source_name=source_name, | |
33 page_num=pgn.prev_page_number) | |
34 next_page_url = None | |
35 if pgn.next_page_number: | |
36 next_page_url = url_for( | |
37 'list_source', source_name=source_name, | |
38 page_num=pgn.next_page_number) | |
39 | |
40 page_urls = [] | |
41 for i in pgn.all_page_numbers(7): | |
42 url = None | |
43 if i != page_num: | |
44 url = url_for('list_source', source_name=source_name, page_num=i) | |
45 page_urls.append({'num': i, 'url': url}) | |
46 | |
47 data['pagination'] = { | |
48 'prev_page': prev_page_url, | |
49 'next_page': next_page_url, | |
50 'nums': page_urls | |
51 } | |
52 | |
53 with_menu_context(data) | |
54 return render_template('list_source.html', **data) | |
55 |