@@ -0,0 +1,821 @@
+# -*- coding: utf-8 -*-%0A%0Afrom django.core.urlresolvers import reverse%0Afrom django.utils.translation import ugettext_lazy as _%0A%0Afrom cms.menu_bases import CMSAttachMenu%0Afrom menus.base import Menu, NavigationNode%0Afrom menus.menu_pool import menu_pool%0A%0Afrom cms_shiny.models import ShinyApp%0A%0Aclass ShinyAppsMenu(CMSAttachMenu):%0A    name = _(%22Shiny Apps Menu%22)%0A%0A    def get_nodes(self, request):%0A        %22%22%22%0A        This method is used to build the menu tree.%0A        %22%22%22%0A        nodes = %5B%5D%0A        for shiny_app in ShinyApp.objects.all():%0A            node = NavigationNode(%0A                shiny_app.name,%0A                reverse('shiny_apps:shiny_app_detail', args=(shiny_app.slug,)),%0A                shiny_app.slug%0A            )%0A            nodes.append(node)%0A        return nodes%0A%0Amenu_pool.register_menu(ShinyAppsMenu)%0A

Create ShinyAppsMenu