Mercurial > piecrust2
comparison foodtruck/views/main.py @ 594:8f9cf1bcbe76
admin: Dashboard UI cleaning, re-use utility function for page summaries.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 19 Jan 2016 21:34:26 -0800 |
parents | d4a01a023998 |
children |
comparison
equal
deleted
inserted
replaced
593:2713b54b5d76 | 594:8f9cf1bcbe76 |
---|---|
1 import os | 1 import os |
2 import os.path | 2 import os.path |
3 import logging | 3 import logging |
4 from flask import ( | 4 from flask import ( |
5 g, request, | 5 g, request, |
6 render_template, url_for, redirect, make_response) | 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.rendering import QualifiedPage |
10 from piecrust.uriutil import split_uri | 10 from piecrust.uriutil import split_uri |
11 from ..textutil import text_preview | |
11 from ..views import with_menu_context | 12 from ..views import with_menu_context |
12 from ..web import app, load_user, after_this_request | 13 from ..web import app, load_user, after_this_request |
13 | 14 |
14 | 15 |
15 logger = logging.getLogger(__name__) | 16 logger = logging.getLogger(__name__) |
50 pd = _getWipData(p, site, fs_endpoints) | 51 pd = _getWipData(p, site, fs_endpoints) |
51 if pd: | 52 if pd: |
52 data['edited_pages'].append(pd) | 53 data['edited_pages'].append(pd) |
53 | 54 |
54 data['site_name'] = site.name | 55 data['site_name'] = site.name |
56 data['site_title'] = site.piecrust_app.config.get('site/title', site.name) | |
55 data['url_bake'] = url_for('bake_site') | 57 data['url_bake'] = url_for('bake_site') |
56 data['url_preview'] = url_for('preview_site_root', sitename=site.name) | 58 data['url_preview'] = url_for('preview_site_root', sitename=site.name) |
57 | 59 |
58 data['sites'] = [] | 60 data['sites'] = [] |
59 for k, v in g.config.get('sites').items(): | 61 for k, v in g.config.get('sites').items(): |
60 data['sites'].append({ | 62 data['sites'].append({ |
61 'name': k, | 63 'name': k, |
62 'display_name': v.get('name', k), | 64 'display_name': v.get('name', k), |
63 'url': url_for('index', site_name=site_name) | 65 'url': url_for('index', site_name=site_name) |
64 }) | 66 }) |
67 data['needs_switch'] = len(g.config.get('sites')) > 1 | |
65 data['url_switch'] = url_for('switch_site') | 68 data['url_switch'] = url_for('switch_site') |
66 | 69 |
67 with_menu_context(data) | 70 with_menu_context(data) |
68 return render_template('dashboard.html', **data) | 71 return render_template('dashboard.html', **data) |
69 | 72 |
88 _, slug = split_uri(site.piecrust_app, uri) | 91 _, slug = split_uri(site.piecrust_app, uri) |
89 | 92 |
90 with open(fac.path, 'r', encoding='utf8') as fp: | 93 with open(fac.path, 'r', encoding='utf8') as fp: |
91 raw_text = fp.read() | 94 raw_text = fp.read() |
92 | 95 |
93 preferred_length = 100 | |
94 max_length = 150 | |
95 header, offset = parse_config_header(raw_text) | 96 header, offset = parse_config_header(raw_text) |
96 extract = raw_text[offset:offset + preferred_length] | 97 extract = text_preview(raw_text, offset=offset) |
97 if len(raw_text) > offset + preferred_length: | |
98 for i in range(offset + preferred_length, | |
99 min(offset + max_length, len(raw_text))): | |
100 c = raw_text[i] | |
101 if c not in [' ', '\t', '\r', '\n']: | |
102 extract += c | |
103 else: | |
104 extract += '...' | |
105 break | |
106 | |
107 return { | 98 return { |
108 'title': qp.config.get('title'), | 99 'title': qp.config.get('title'), |
109 'slug': slug, | 100 'slug': slug, |
110 'url': url_for('edit_page', slug=slug), | 101 'url': url_for('edit_page', slug=slug), |
111 'text': extract | 102 'text': extract |