Skip to main content

UNKNOWN

Project description

https://travis-ci.org/rebeccaframework/rebecca.menu.png?branch=master

Introduction

rebecca.menu is component for pyramid, that provides management of menu urls.

Install

You can install rebecca.menu with pip.

$ pip install rebecca.menu

Usage

rebecca.menu provides include hook.:

config.include('rebecca.menu')

register and use Menu

To add menu, use add_route_menu directive.:

config.add_route('menu1', '/menus/menu1')
config.add_route('menu2', '/menus/menu2')
config.add_route_menu(menu_name="system", route_name="menu1", display_name="system menu item1")

Or use route_menu_config decorator.:

@route_menu_config('system')
class SystemMenu3(object):
    route_name="menu3"
    display_name = "system menu item3"

To get menu, use get_menu API:

from rebecca.menu import get_menu

def menu(request):
    system_menu = get_menu(request, system)
    return dict(menu=system_menu)

get_menu returns the object that provides rebecca.menu.interfaces.IMenu. IMenu has a property named menu_items that is list including IMenuItem.

IMenuItem has some property, display_name, name and url. Maybe you use menu items in template such as below:

<ul class="nav">
%for m in system_menu.menu_items:
    <li><a href="${m.url}">${m.display_name}</a></li>
%endfor
</ul>

Permissions

Registering menu with permission

@route_menu_config('system')
class SystemMenu3(object):
    route_name="menu3"
    display_name = "system menu item3"
    permission = 'menu3-permission'

get_menu check permission of request with has_permission, causes that menu_items includes menu items passed permission check.

Matchdict

If route has placeholder, the menu url fills values from request.matchdict.

config.add_route("menu1", 'menus/menu1/{testing_vars}')
menu_factory.add_item(route_name="menu1", display_name="testing-menu1")

When matchdict has values for testing_vars as “that-is-testing”, menu1’s url is “menus/menu1/that-is-testing”.

Contributors

  • Atsushi Odagiri, Original Author

Changelog

0.1 (2013-10-13)

  • first release

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rebecca.menu-0.1.zip (9.2 kB view details)

Uploaded Source

File details

Details for the file rebecca.menu-0.1.zip.

File metadata

  • Download URL: rebecca.menu-0.1.zip
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rebecca.menu-0.1.zip
Algorithm Hash digest
SHA256 35aa183dc9fd9c50709347b0b27168a923159acf489535fb86e1e71087e90fcd
MD5 c894dd930ea4d84c8dcb10f7a02c56bf
BLAKE2b-256 7fe9da054194d7a3e2be926a9905541e369fdb05d36f66c17cbf456dc67bfe90

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page