Skip to content

rafaelcanovas/django-alacarte

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alacarte

django-alacarte is a minimalist menu app for Django.

Installation

$ pip install django-alacarte

Usage

Add "alacarte" to your INSTALLED_APPS:

INSTALLED_APPS = (
	...,
	'alacarte',
)

Create a menu.py inside your app and register your menus:

import alacarte


class BankTransactionsMenu(alacarte.Menu):
	label = 'Transactions'
	url_name = 'bank_transactions'


class BankBalanceMenu(alacarte.Menu):
	label = 'Balance'
	url_name = 'bank_balance'


class BankPremiumMenu(alacarte.Menu):
	label = 'Premium Offers'
	url_name = 'bank_premium_offers'

	def shown(self)
		user = self.context['user']
		return user.is_premium()


class BankMenu(alacarte.Menu):
	group = 'main'
	label = 'Bank'
	submenus = (
		BankTransactionsMenu,
		BankBalanceMenu,
		BankPremiumMenu,
	)

	def shown(self):
		user = self.context['user']
		return user.is_authenticated()


alacarte.register(BankMenu)

Then in your template:

{# ... #}
	{# ... #}
	{% alacarte "main" %}
	{# ... #}
{# ... #}

Todo

  • Active item highlighting
  • Navigation breadcrumbs
  • Sitemap generation

django-alacarte is not related to https://pypi.python.org/pypi/alacarte

About

A minimalist Django dynamic menu app.

Resources

License

Stars

Watchers

Forks

Packages

No packages published