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