Mercurial > piecrust2
comparison foodtruck/views/menu.py @ 587:d4a01a023998
admin: Add "FoodTruck" admin panel from the side experiment project.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 16 Jan 2016 14:24:35 -0800 |
parents | |
children | 8f9cf1bcbe76 |
comparison
equal
deleted
inserted
replaced
586:59268b4d8c71 | 587:d4a01a023998 |
---|---|
1 from flask import g, request, url_for | |
2 from flask.ext.login import current_user | |
3 | |
4 | |
5 def get_menu_context(): | |
6 entries = [] | |
7 entries.append({ | |
8 'url': '/', | |
9 'title': "Dashboard", | |
10 'icon': 'speedometer'}) | |
11 | |
12 site = g.sites.get().piecrust_app | |
13 for s in site.sources: | |
14 if s.is_theme_source: | |
15 continue | |
16 | |
17 source_icon = s.config.get('foodtruck_icon/document') | |
18 if s.name == 'pages': | |
19 source_icon = 'document-text' | |
20 elif 'blog' in s.name: | |
21 source_icon = 'filing' | |
22 | |
23 url_write = url_for('write_page', source_name=s.name) | |
24 url_listall = url_for('list_source', source_name=s.name) | |
25 | |
26 ctx = { | |
27 'url': url_listall, | |
28 'title': s.name, | |
29 'icon': source_icon, | |
30 'entries': [ | |
31 {'url': url_listall, 'title': "List All"}, | |
32 {'url': url_write, 'title': "Write New"} | |
33 ] | |
34 } | |
35 entries.append(ctx) | |
36 | |
37 entries.append({ | |
38 'url': url_for('settings'), | |
39 'title': "Settings", | |
40 'icon': 'gear-b'}) | |
41 | |
42 for e in entries: | |
43 needs_more_break = False | |
44 if 'entries' in e: | |
45 for e2 in e['entries']: | |
46 if e2['url'] == request.path: | |
47 e['open'] = True | |
48 e2['active'] = True | |
49 needs_more_break = True | |
50 break | |
51 if needs_more_break: | |
52 break | |
53 | |
54 if e['url'] == request.path: | |
55 e['active'] = True | |
56 break | |
57 | |
58 data = {'entries': entries, | |
59 'user': current_user, | |
60 'url_logout': url_for('logout')} | |
61 return data | |
62 | |
63 |