-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmenus.py
More file actions
39 lines (31 loc) · 1.4 KB
/
menus.py
File metadata and controls
39 lines (31 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from menu import Menu, MenuItem
from django.core.urlresolvers import reverse
from admin_tools.menu.models import *
from menu import Menu, MenuItem
def profile_title(request):
"""
Return a personalized title for our profile menu item
"""
# we don't need to check if the user is authenticated because our menu
# item will have a check that does that for us
name = request.user.get_full_name() or request.user
return "%s's Profile" % name
Menu.add_item("main", MenuItem("Accounts Index",
reverse("accounts.views.index")))
# this item will be shown to users who are not logged in
Menu.add_item("user", MenuItem("Login",
reverse('django.contrib.auth.views.login'),
check=lambda request: not request.user.is_authenticated()))
# this will only be shown to logged in users and also demonstrates how to use
# a callable for the title to return a customized title for each request
Menu.add_item("user", MenuItem(profile_title,
reverse('accounts.views.profile'),
check=lambda request: request.user.is_authenticated()))
Menu.add_item("user", MenuItem("Logout",
reverse('django.contrib.auth.views.logout'),
check=lambda request: request.user.is_authenticated()))
# this only shows to superusers
Menu.add_item("user", MenuItem("Admin",
reverse("admin:index"),
separator=True,
check=lambda request: request.user.is_superuser))