Mercurial > piecrust2
comparison foodtruck/views/edit.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 | 4d8e82641597 |
children |
comparison
equal
deleted
inserted
replaced
771:673979a5d548 | 772:3885421c29a3 |
---|---|
4 g, request, abort, render_template, url_for, flash) | 4 g, request, abort, render_template, url_for, flash) |
5 from flask.ext.login import login_required | 5 from flask.ext.login import login_required |
6 from piecrust.rendering import ( | 6 from piecrust.rendering import ( |
7 PageRenderingContext, render_page) | 7 PageRenderingContext, render_page) |
8 from piecrust.serving.util import get_requested_page | 8 from piecrust.serving.util import get_requested_page |
9 from ..blueprint import foodtruck_bp | |
9 from ..views import with_menu_context | 10 from ..views import with_menu_context |
10 from ..web import app | |
11 | 11 |
12 | 12 |
13 logger = logging.getLogger(__name__) | 13 logger = logging.getLogger(__name__) |
14 | 14 |
15 | 15 |
16 @app.route('/edit/', defaults={'slug': ''}, methods=['GET', 'POST']) | 16 @foodtruck_bp.route('/edit/', defaults={'slug': ''}, methods=['GET', 'POST']) |
17 @app.route('/edit/<path:slug>', methods=['GET', 'POST']) | 17 @foodtruck_bp.route('/edit/<path:slug>', methods=['GET', 'POST']) |
18 @login_required | 18 @login_required |
19 def edit_page(slug): | 19 def edit_page(slug): |
20 site = g.site | 20 site = g.site |
21 site_app = site.piecrust_app | 21 site_app = site.piecrust_app |
22 rp = get_requested_page(site_app, | 22 rp = get_requested_page(site_app, |
64 | 64 |
65 | 65 |
66 def _edit_page_form(page): | 66 def _edit_page_form(page): |
67 data = {} | 67 data = {} |
68 data['is_new_page'] = False | 68 data['is_new_page'] = False |
69 data['url_cancel'] = url_for('list_source', source_name=page.source.name) | 69 data['url_cancel'] = url_for('.list_source', source_name=page.source.name) |
70 with open(page.path, 'r', encoding='utf8', newline='') as fp: | 70 with open(page.path, 'r', encoding='utf8', newline='') as fp: |
71 data['page_text'] = fp.read() | 71 data['page_text'] = fp.read() |
72 data['is_dos_nl'] = "1" if '\r\n' in data['page_text'] else "0" | 72 data['is_dos_nl'] = "1" if '\r\n' in data['page_text'] else "0" |
73 | 73 |
74 with_menu_context(data) | 74 with_menu_context(data) |