diff --git a/tests/tests/apps.py b/tests/tests/apps.py index a0c54a7..b5fa698 100644 --- a/tests/tests/apps.py +++ b/tests/tests/apps.py @@ -19,26 +19,26 @@ def setUp(self): def test_get_menu(self): generated_menu = self.test_view.get_apps_menu() self.assertEqual(generated_menu, - {'app:testapp': - {'title': 'Test App', 'url': '', 'perm': None, - 'menus': [ - {'url': '/admin/testapp/testurl/', 'title': u'Test URL', - 'order': '', 'perm': None, 'icon': 'bolt'}], - 'first_icon': 'test', 'order': ''}}) + {'app:testapp': { + 'menus': [ + {'url': '/admin/testapp/testurl/', 'title': u'Test URL', + 'order': '', 'perm': None, 'icon': 'bolt'}], + 'first_icon': 'test', 'title': 'Test App'}}) final_menu = self.test_view.get_nav_menu() self.assertEqual( final_menu, - [{'first_url': '/tests/modela/', 'title': 'Test App', - 'url': '', 'perm': None, 'menus': [ - {'url': '/tests/modela/', 'icon': None, 'order': 1, - 'perm': 'tests.view_modela', 'title': u'Model as'}, - {'url': '/admin/testapp/testurl/', 'title': u'Test URL', - 'order': '', 'perm': None, 'icon': 'bolt'}], - 'first_icon': 'test', 'order': ''}, - {'menus': [{'url': '/tests/modelb/', 'icon': None, 'order': 2, - 'perm': 'tests.view_modelb', 'title': u'Model bs'}], - 'first_url': '/tests/modelb/', 'title': u'Tests'}]) + [{'menus': [ + {'url': '/tests/modela/', 'icon': None, 'order': 1, + 'perm': 'tests.view_modela', 'title': u'Model as'}, + {'url': '/admin/testapp/testurl/', 'title': u'Test URL', + 'order': '', 'perm': None, 'icon': 'bolt'}], + 'first_icon': 'test', 'first_url': '/tests/modela/', + 'title': 'Test App'}, + {'menus': [ + {'url': '/tests/modelb/', 'icon': None, 'order': 2, + 'perm': 'tests.view_modelb', 'title': u'Model bs'}], + 'first_url': '/tests/modelb/', 'title': u'Tests'}]) def _create_superuser(self, username): return User.objects.create(username=username, is_superuser=True) diff --git a/xadmin_extras/apps.py b/xadmin_extras/apps.py index cb5dcc6..2f33e66 100644 --- a/xadmin_extras/apps.py +++ b/xadmin_extras/apps.py @@ -1,11 +1,9 @@ # coding=utf-8 +import copy class AdminAppMixin(object): - def __init__(self): - self.custom_menu = self.init_menu() - def init_menu(self): """Add custom menu entries to the menu displayed for this app diff --git a/xadmin_extras/views.py b/xadmin_extras/views.py index 7dddafa..1f1c7e0 100644 --- a/xadmin_extras/views.py +++ b/xadmin_extras/views.py @@ -33,9 +33,8 @@ def get_apps_menu(self): app_config = model_admin.app_config menu.update({'app:' + app_config.name: { 'title': app_config.verbose_name, - 'menus': app_config.custom_menu, - 'url': '', 'order': '', 'perm': None, - 'first_icon': app_config.icon}}) + 'menus': app_config.init_menu(), + 'first_icon': app_config.icon}}) return menu @views.filter_hook @@ -70,7 +69,6 @@ def get_url(menu, had_urls): } if model_dict['url'] in had_urls: continue - app_key = "app:%s" % app_label if app_key in nav_menu: nav_menu[app_key]['menus'].append(model_dict)