annotate piecrust/admin/views/dashboard.py @ 935:7ecb946bfafd

admin: Lots of fixes for running the admin panel in a WSGI server. - Use new source APIs in the dashboard to open WIP files. - Fixed broken/outdated code in some views. - Fixed cases when Flask is not running at the root URL by using the `SCRIPT_NAME` variable somewhat more properly.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 04 Oct 2017 09:15:16 -0700
parents 175d80cf75d7
children 8101692fdc11
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 import os
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 import os.path
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 import logging
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 from flask import (
812
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
5 current_app, g, request,
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
6 render_template, url_for, redirect)
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7 from flask.ext.login import login_user, logout_user, login_required
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
8 from piecrust.sources.fs import FSContentSourceBase
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
9 from piecrust.sources.interfaces import IInteractiveSource
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 from piecrust.uriutil import split_uri
594
8f9cf1bcbe76 admin: Dashboard UI cleaning, re-use utility function for page summaries.
Ludovic Chabant <ludovic@chabant.com>
parents: 587
diff changeset
11 from ..textutil import text_preview
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
12 from ..blueprint import foodtruck_bp, load_user
935
7ecb946bfafd admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents: 927
diff changeset
13 from ..views import with_menu_context, with_base_data
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 logger = logging.getLogger(__name__)
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
19 @foodtruck_bp.route('/')
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 @login_required
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 def index():
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 data = {}
610
efc1dc916e7c admin: Configuration changes.
Ludovic Chabant <ludovic@chabant.com>
parents: 602
diff changeset
23 data['sources'] = []
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
24
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 fs_endpoints = {}
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
26
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
27 site = g.site
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
28 pcapp = site.piecrust_app
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
29 for source in pcapp.sources:
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 if source.is_theme_source:
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 continue
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
32 if not isinstance(source, IInteractiveSource):
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
33 continue
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
34
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 src_data = {
812
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
36 'name': source.name,
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
37 'list_url': url_for('.list_source', source_name=source.name)}
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 data['sources'].append(src_data)
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
40 if isinstance(source, FSContentSourceBase):
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
41 fs_endpoints[source.fs_endpoint] = source
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43 data['new_pages'] = []
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
44 data['edited_pages'] = []
770
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
45 data['misc_files'] = []
761
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
46 if site.scm:
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
47 st = site.scm.getStatus()
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
48 auto_formats = site.piecrust_app.config.get('site/auto_formats',
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
49 ['html'])
761
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
50 for p in st.new_files:
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
51 pd = _getWipData(p, fs_endpoints, auto_formats, site.piecrust_app)
761
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
52 if pd:
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
53 data['new_pages'].append(pd)
770
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
54 else:
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
55 data['misc_files'].append(p)
761
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
56 for p in st.edited_files:
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
57 pd = _getWipData(p, fs_endpoints, auto_formats, site.piecrust_app)
761
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
58 if pd:
4d8e82641597 admin: Don't crash when the site isn't in a source control repository.
Ludovic Chabant <ludovic@chabant.com>
parents: 610
diff changeset
59 data['edited_pages'].append(pd)
770
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
60 else:
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
61 data['misc_files'].append(p)
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
62
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
63 data['site_title'] = pcapp.config.get('site/title', "Unnamed Website")
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
64 data['url_publish'] = url_for('.publish')
886
dcdec4b951a1 admin: Get the admin panel working again.
Ludovic Chabant <ludovic@chabant.com>
parents: 812
diff changeset
65 data['url_preview'] = url_for('.preview_root_page')
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
66
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
67 pub_tgts = pcapp.config.get('publish', {})
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
68 data['publish'] = {'targets': list(pub_tgts.keys())}
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
69
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
70 micropub = pcapp.config.get('micropub', {})
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
71 data['publish'] = micropub.get('publish_target')
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
72
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
73 with_menu_context(data)
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
74 return render_template('dashboard.html', **data)
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
76
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
77 def _getWipData(path, fs_endpoints, auto_formats, pcapp):
770
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
78 pathname, pathext = os.path.splitext(path)
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
79 if pathext.lstrip('.') not in auto_formats:
770
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
80 return None
a7726e4862c4 admin: Fix API changes, don't crash the dashboard on non-binary WIP files.
Ludovic Chabant <ludovic@chabant.com>
parents: 761
diff changeset
81
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
82 source = None
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
83 for endpoint, s in fs_endpoints.items():
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84 if path.startswith(endpoint):
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
85 source = s
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
86 break
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
87 if source is None:
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
88 return None
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
89
935
7ecb946bfafd admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents: 927
diff changeset
90 full_path = os.path.join(pcapp.root_dir, path)
7ecb946bfafd admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents: 927
diff changeset
91 content_item = source.findContentFromPath(full_path)
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
92 if content_item is None:
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
93 return None
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
94
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
95 page = pcapp.getPage(source, content_item)
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
96 uri = page.getUri()
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
97 _, slug = split_uri(pcapp, uri)
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
98
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
99 seg = page.getSegment()
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
100 if not seg:
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
101 return None
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
102
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
103 extract = text_preview(seg.content)
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
104 return {
927
175d80cf75d7 serve: Admin dashboard improvements.
Ludovic Chabant <ludovic@chabant.com>
parents: 886
diff changeset
105 'title': page.config.get('title'),
812
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
106 'slug': slug,
935
7ecb946bfafd admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents: 927
diff changeset
107 'url': url_for('.edit_page', url=slug),
812
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
108 'text': extract
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
109 }
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
110
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
111
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
112 @foodtruck_bp.route('/login', methods=['GET', 'POST'])
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
113 def login():
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
114 data = {}
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
115
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
116 if request.method == 'POST':
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
117 username = request.form.get('username')
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
118 password = request.form.get('password')
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
119 remember = request.form.get('remember')
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
120
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
121 user = load_user(username)
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
122 if user is not None and current_app.bcrypt:
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
123 if current_app.bcrypt.check_password_hash(user.password, password):
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
124 login_user(user, remember=bool(remember))
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
125 return redirect(url_for('.index'))
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
126 data['message'] = (
812
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
127 "User '%s' doesn't exist or password is incorrect." %
82509bce94ca internal: PEP8 fixup for admin panel code.
Ludovic Chabant <ludovic@chabant.com>
parents: 778
diff changeset
128 username)
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
129
935
7ecb946bfafd admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents: 927
diff changeset
130 with_base_data(data)
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
131 return render_template('login.html', **data)
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
132
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
133
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
134 @foodtruck_bp.route('/logout')
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
135 @login_required
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
136 def logout():
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
137 logout_user()
772
3885421c29a3 admin: Make the whole FoodTruck site into a blueprint.
Ludovic Chabant <ludovic@chabant.com>
parents: 770
diff changeset
138 return redirect(url_for('.index'))
587
d4a01a023998 admin: Add "FoodTruck" admin panel from the side experiment project.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
139