Beginning to capture some ideas from improving the menu: * Code for the menus should be segregated between the technical implementation and the layout - making it easy for non-technical users to customize the menu and reducing the clutter in the code, and reduce the amount of code being executed every run in the models. * Define the customization of the menu in CSV? * Make Menu customization completely independent from the modules. * How many levels? Configurable. Suggestion. * Application - a deployments of Sahana may contain different applications, which may be used by different people and certainly at different times/workflows. This could be separate from the main menu - at the very top. * Functional - what does someone want to do in the current application. * Functional level 2 / Work Stage - this could represent work flow, or just reduce the clutter in one level of functional * Avoid 3rd level - especially pop-ups! * Breadcrumbs * Allow modules to be turned on/off and also excluded from releases of code with simple switches. * Allow the menu to indicate which option has been clicked (flag to set a class in the li - where set flag?). Allow the user to define a custom home page, without editing core code.