Oops sorry forgot a detail, I did this a while back
I have a simple mapping of top level menu item to controller name so this
works for me because of how it is organized. This allows me to remove
functions from the application depending on where it is installed. Some
clients don't use every possible top level menu item.
So to figure out the active path in model/menu.py all i need is
active_path = request.controller
Then the menu items are constructed with a True False in the second item of
the tuple using logic like this on each item.
response.menu+=[
(MAP, True if active_path == 'map' else False, URL(c='map',
f='index'), [])
]
MAP = T('Map') to allow translation to fill out a missing part of the above
code fragment.
I realize this has some limitations such as forcing a top level menu item
and a controller name to be connected but I was willing to accept that..