Mercurial > piecrust2
comparison piecrust/admin/views/dashboard.py @ 886:dcdec4b951a1
admin: Get the admin panel working again.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 20 Jun 2017 21:13:08 -0700 |
parents | 82509bce94ca |
children | 175d80cf75d7 |
comparison
equal
deleted
inserted
replaced
885:13e8b50a2113 | 886:dcdec4b951a1 |
---|---|
4 from flask import ( | 4 from flask import ( |
5 current_app, g, request, | 5 current_app, g, request, |
6 render_template, url_for, redirect) | 6 render_template, url_for, redirect) |
7 from flask.ext.login import login_user, logout_user, login_required | 7 from flask.ext.login import login_user, logout_user, login_required |
8 from piecrust.configuration import parse_config_header | 8 from piecrust.configuration import parse_config_header |
9 from piecrust.rendering import QualifiedPage | 9 from piecrust.sources.interfaces import IInteractiveSource |
10 from piecrust.uriutil import split_uri | 10 from piecrust.uriutil import split_uri |
11 from ..textutil import text_preview | 11 from ..textutil import text_preview |
12 from ..blueprint import foodtruck_bp, load_user, after_this_request | 12 from ..blueprint import foodtruck_bp, load_user, after_this_request |
13 from ..views import with_menu_context | 13 from ..views import with_menu_context |
14 | 14 |
19 @foodtruck_bp.route('/') | 19 @foodtruck_bp.route('/') |
20 @login_required | 20 @login_required |
21 def index(): | 21 def index(): |
22 data = {} | 22 data = {} |
23 data['sources'] = [] | 23 data['sources'] = [] |
24 | |
25 fs_endpoints = {} | |
26 | |
24 site = g.site | 27 site = g.site |
25 fs_endpoints = {} | 28 pcapp = site.piecrust_app |
26 for source in site.piecrust_app.sources: | 29 for source in pcapp.sources: |
27 if source.is_theme_source: | 30 if source.is_theme_source: |
28 continue | 31 continue |
29 facs = source.getPageFactories() | 32 if not isinstance(source, IInteractiveSource): |
33 continue | |
34 | |
35 items = source.getAllContents() | |
30 src_data = { | 36 src_data = { |
31 'name': source.name, | 37 'name': source.name, |
32 'list_url': url_for('.list_source', source_name=source.name), | 38 'list_url': url_for('.list_source', source_name=source.name), |
33 'page_count': len(facs)} | 39 'page_count': len(items)} |
34 data['sources'].append(src_data) | 40 data['sources'].append(src_data) |
35 | 41 |
36 fe = getattr(source, 'fs_endpoint', None) | 42 fe = getattr(source, 'fs_endpoint', None) |
37 if fe: | 43 if fe: |
38 fs_endpoints[fe] = source | 44 fs_endpoints[fe] = source |
53 if pd: | 59 if pd: |
54 data['edited_pages'].append(pd) | 60 data['edited_pages'].append(pd) |
55 else: | 61 else: |
56 data['misc_files'].append(p) | 62 data['misc_files'].append(p) |
57 | 63 |
58 data['site_name'] = site.name | 64 data['site_title'] = pcapp.config.get('site/title', "Unnamed Website") |
59 data['site_title'] = site.piecrust_app.config.get('site/title', site.name) | |
60 data['url_publish'] = url_for('.publish') | 65 data['url_publish'] = url_for('.publish') |
61 data['url_preview'] = url_for('.preview_site_root', sitename=site.name) | 66 data['url_preview'] = url_for('.preview_root_page') |
62 | |
63 data['sites'] = [] | |
64 for s in g.sites.getall(): | |
65 data['sites'].append({ | |
66 'name': s.name, | |
67 'display_name': s.piecrust_app.config.get('site/title'), | |
68 'url': url_for('.index', site_name=s.name) | |
69 }) | |
70 data['needs_switch'] = len(g.config.get('sites')) > 1 | |
71 data['url_switch'] = url_for('.switch_site') | |
72 | 67 |
73 with_menu_context(data) | 68 with_menu_context(data) |
74 return render_template('dashboard.html', **data) | 69 return render_template('dashboard.html', **data) |
75 | 70 |
76 | 71 |