comparison foodtruck/views/create.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 a7726e4862c4
children
comparison
equal deleted inserted replaced
771:673979a5d548 772:3885421c29a3
5 g, request, abort, render_template, url_for, redirect, flash) 5 g, request, abort, render_template, url_for, redirect, flash)
6 from flask.ext.login import login_required 6 from flask.ext.login import login_required
7 from piecrust.sources.interfaces import IInteractiveSource 7 from piecrust.sources.interfaces import IInteractiveSource
8 from piecrust.sources.base import MODE_CREATING 8 from piecrust.sources.base import MODE_CREATING
9 from piecrust.routing import create_route_metadata 9 from piecrust.routing import create_route_metadata
10 from ..blueprint import foodtruck_bp
10 from ..views import with_menu_context 11 from ..views import with_menu_context
11 from ..web import app
12 12
13 13
14 logger = logging.getLogger(__name__) 14 logger = logging.getLogger(__name__)
15 15
16 16
17 @app.route('/write/<source_name>', methods=['GET', 'POST']) 17 @foodtruck_bp.route('/write/<source_name>', methods=['GET', 'POST'])
18 @login_required 18 @login_required
19 def write_page(source_name): 19 def write_page(source_name):
20 site = g.site.piecrust_app 20 site = g.site.piecrust_app
21 source = site.getSource(source_name) 21 source = site.getSource(source_name)
22 if source is None: 22 if source is None:
55 uri = route.getUri(route_metadata) 55 uri = route.getUri(route_metadata)
56 uri_root = '/site/%s/' % g.site.name 56 uri_root = '/site/%s/' % g.site.name
57 uri = uri[len(uri_root):] 57 uri = uri[len(uri_root):]
58 logger.debug("Redirecting to: %s" % uri) 58 logger.debug("Redirecting to: %s" % uri)
59 59
60 return redirect(url_for('edit_page', slug=uri)) 60 return redirect(url_for('.edit_page', slug=uri))
61 61
62 abort(400) 62 abort(400)
63 63
64 return _write_page_form(source) 64 return _write_page_form(source)
65 65
74 74
75 def _write_page_form(source): 75 def _write_page_form(source):
76 data = {} 76 data = {}
77 data['is_new_page'] = True 77 data['is_new_page'] = True
78 data['source_name'] = source.name 78 data['source_name'] = source.name
79 data['url_postback'] = url_for('write_page', source_name=source.name) 79 data['url_postback'] = url_for('.write_page', source_name=source.name)
80 data['fields'] = [] 80 data['fields'] = []
81 for f in source.getInteractiveFields(): 81 for f in source.getInteractiveFields():
82 data['fields'].append({ 82 data['fields'].append({
83 'name': f.name, 83 'name': f.name,
84 'display_name': f.name, 84 'display_name': f.name,