Mercurial > piecrust2
comparison foodtruck/views/sources.py @ 772:3885421c29a3
admin: Make the whole FoodTruck site into a blueprint.
This makes it possible to use an app factory, which makes it easier to write
unit tests.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 03 Jul 2016 07:54:54 -0700 |
parents | c1a94e1beb9d |
children |
comparison
equal
deleted
inserted
replaced
771:673979a5d548 | 772:3885421c29a3 |
---|---|
1 from flask import g, abort, render_template, url_for | 1 from flask import g, abort, render_template, url_for |
2 from flask.ext.login import login_required | 2 from flask.ext.login import login_required |
3 from piecrust.data.paginator import Paginator | 3 from piecrust.data.paginator import Paginator |
4 from ..blueprint import foodtruck_bp | |
4 from ..textutil import text_preview, html_to_text | 5 from ..textutil import text_preview, html_to_text |
5 from ..views import with_menu_context | 6 from ..views import with_menu_context |
6 from ..web import app | |
7 | 7 |
8 | 8 |
9 @app.route('/list/<source_name>/', defaults={'page_num': 1}) | 9 @foodtruck_bp.route('/list/<source_name>/', defaults={'page_num': 1}) |
10 @app.route('/list/<source_name>/<int:page_num>') | 10 @foodtruck_bp.route('/list/<source_name>/<int:page_num>') |
11 @login_required | 11 @login_required |
12 def list_source(source_name, page_num): | 12 def list_source(source_name, page_num): |
13 site = g.site.piecrust_app | 13 site = g.site.piecrust_app |
14 source = site.getSource(source_name) | 14 source = site.getSource(source_name) |
15 if source is None: | 15 if source is None: |
27 'slug': p['slug'], | 27 'slug': p['slug'], |
28 'timestamp': p['timestamp'], | 28 'timestamp': p['timestamp'], |
29 'tags': p.get('tags', []), | 29 'tags': p.get('tags', []), |
30 'category': p.get('category'), | 30 'category': p.get('category'), |
31 'source': source_name, | 31 'source': source_name, |
32 'url': url_for('edit_page', slug=p['slug']) | 32 'url': url_for('.edit_page', slug=p['slug']) |
33 } | 33 } |
34 data['pages'].append(page_data) | 34 data['pages'].append(page_data) |
35 | 35 |
36 prev_page_url = None | 36 prev_page_url = None |
37 if pgn.prev_page_number: | 37 if pgn.prev_page_number: |
38 prev_page_url = url_for( | 38 prev_page_url = url_for( |
39 'list_source', source_name=source_name, | 39 '.list_source', source_name=source_name, |
40 page_num=pgn.prev_page_number) | 40 page_num=pgn.prev_page_number) |
41 next_page_url = None | 41 next_page_url = None |
42 if pgn.next_page_number: | 42 if pgn.next_page_number: |
43 next_page_url = url_for( | 43 next_page_url = url_for( |
44 'list_source', source_name=source_name, | 44 '.list_source', source_name=source_name, |
45 page_num=pgn.next_page_number) | 45 page_num=pgn.next_page_number) |
46 | 46 |
47 page_urls = [] | 47 page_urls = [] |
48 for i in pgn.all_page_numbers(7): | 48 for i in pgn.all_page_numbers(7): |
49 url = None | 49 url = None |
50 if i != page_num: | 50 if i != page_num: |
51 url = url_for('list_source', source_name=source_name, page_num=i) | 51 url = url_for('.list_source', source_name=source_name, page_num=i) |
52 page_urls.append({'num': i, 'url': url}) | 52 page_urls.append({'num': i, 'url': url}) |
53 | 53 |
54 data['pagination'] = { | 54 data['pagination'] = { |
55 'prev_page': prev_page_url, | 55 'prev_page': prev_page_url, |
56 'next_page': next_page_url, | 56 'next_page': next_page_url, |