Mercurial > piecrust2
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, |