@@ -49,6 +49,7 @@ def make(self, request, models=None, deep=1, deep_limit=0):
4949 menu_item ['name' ] = menu_item ['label' ]
5050
5151 menu_item ['target_blank' ] = self .target_blank
52+ menu_item ['menu_type' ] = self .menu_type or 'group'
5253
5354 if self .child :
5455 if deep_limit == 0 or deep <= deep_limit :
@@ -57,6 +58,10 @@ def make(self, request, models=None, deep=1, deep_limit=0):
5758 deep += 1
5859 child_menu = child .make (request , models , deep , deep_limit )
5960 if child_menu :
61+ # menu_type: group and child is empty will hide the menu
62+ if child_menu .get ('menu_type' , 'group' ) == 'group' :
63+ if len (child_menu .get ('child' )) == 0 :
64+ continue
6065 child_list .append (child_menu )
6166 menu_item ['child' ] = child_list
6267 else :
@@ -109,6 +114,10 @@ def build_main_menu(self, request, app_list):
109114 for menu_item in self .main_menu :
110115 menu_item_ = menu_item .make (request , models )
111116 if menu_item_ :
117+ # menu_type: group and child is empty will hide the menu
118+ if menu_item_ .get ('menu_type' , 'group' ) == 'group' :
119+ if len (menu_item_ .get ('child' )) == 0 :
120+ continue
112121 menu .append (menu_item_ )
113122 return menu
114123
@@ -127,5 +136,9 @@ def build_top_menu(self, request, app_list):
127136 for menu_item in self .top_menu :
128137 menu_item_ = menu_item .make (request , models , deep_limit = 2 )
129138 if menu_item_ :
139+ # menu_type: group and child is empty will hide the menu
140+ if menu_item_ .get ('menu_type' , 'group' ) == 'group' :
141+ if len (menu_item_ .get ('child' )) == 0 :
142+ continue
130143 menu .append (menu_item_ )
131144 return menu
0 commit comments