Grok extension to configure browser menus
This package allows you to register browser menus and menu items for browser views in Grok.
A menu is easily registered by creating a subclass of megrok.menu.Menu:
import megrok.menu.Menu class Tabs(megrok.menu.Menu): grok.name('tabs') grok.title('Tabs') grok.description('')
A view can then placed on a menu with the menuitem directive:
class Edit(grok.View): grok.title('Edit') grok.description("Change this object's data.") megrok.menu.menuitem('tabs') ...
The title and description directives used here specifie the menu item’s label and description. The menuitem directive takes at least one argument, the menu that the item is registered to be for. This can either be an identifier string or the menu class itself. Other optional parameters include icon, filter, order and extra.
For more use cases and examples, take a look to tests/test_functional.py
- Update tests.
- Cleaned the tests module. Now, we only use the ZTK packages to test.
- The dependencies have been cleared. We no longer depend on zope.app packages.
- Updated the security grokking in the menu items grokker. We don’t need the protect_getattr, as the view security grokker already does it for us.
- Fixed the dependencies in the package requires. All dependencies are now clearly declared.
- Added a LICENSE.txt file for the ZPL 2.1.
- Added the support of the grokcore.viewlet ‘order’ directive to reorder the menu items and sub menus. This permits to have a baseclass defining the basic menu and to keep the ordering possibility in the sublasses. We probably should do that for the different arguments of the menuitem directive. That would allow more genericity and reusability. Note : this change is 100% backward compatible. Simply added tests to show the behavior. [trollfot]
- Get rid of the grok dependency. Now depends only on grokcore.* packages
- Updated the build process
- Compatible with grok1.0a1
- Add the SubMenuItem base class and it’s grokker SubMenuItemGrokker
- Add the extra parameter to the menuitem directive
- Tests for added functionality
- Remove version.cfg