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)