@@ -2,31 +2,44 @@ class Menu:
2
2
active_url = None
3
3
4
4
def __init__ (self , name , url = None , icon = None , * submenu , ** kwargs ):
5
+ if self .active_url is None :
6
+ raise RuntimeError ("Active url is not set when menu item is created" )
7
+
5
8
self .name = name
6
9
self .icon = icon if icon else ''
7
- self .url = url if url else ''
10
+ self .url = url
8
11
self .submenu = submenu
9
12
self .active = (url == self .active_url or
10
13
any (sm .active for sm in self .submenu ))
14
+ print (self .name , self .url )
15
+
16
+ @classmethod
17
+ def set_url (cls , url ):
18
+ cls .active_url = '' if url is None else url
11
19
12
20
@property
13
21
def menu_class (self ):
14
22
return 'sub-menu' if self .submenu else 'mf'
15
23
16
24
17
25
def navigation (request ):
18
- Menu .active_url = request .resolver_match .url_name
19
- print (Menu .active_url )
20
- menu = [Menu ("Dashboard" , icon = 'fa-dashboard' ),
26
+ Menu .set_url (request .resolver_match .url_name )
27
+
28
+ menu = [Menu ("Dashboard" , 'index' , icon = 'fa-dashboard' ),
29
+
21
30
Menu ("Collaboration" , None , 'fa-cogs' ,
22
31
Menu ("Projects" , url = 'project-list' ),
23
32
Menu ("Files" , url = 'file-list' ),
24
33
Menu ("Tasks" , url = 'task-list' ),
25
- Menu ("Instances" , url = 'instance-list' )),
34
+ Menu ("Instances" , url = 'instance-list' ))]
26
35
27
- Menu ("Account" , None , 'fa-desktop' ,
28
- Menu ("Your profile" , url = 'profile' ),
29
- # Menu("Settings", url='settings'),
30
- Menu ("Logout" , url = 'auth_logout' ))]
36
+ if request .user .is_authenticated ():
37
+ account = Menu ("Account" , None , 'fa-desktop' ,
38
+ Menu ("Your profile" , url = 'profile' ),
39
+ # Menu("Settings", url='settings'),
40
+ Menu ("Logout" , url = 'auth_logout' ))
41
+ else :
42
+ account = Menu ("Login" , 'auth_login' )
43
+ menu .append (account )
31
44
32
45
return {'navigation' : menu }
0 commit comments