Mercurial > personas_backend
view PersonasBackendTemp/personas/sections.py @ 126:cb128e025ae9
Temporarily changing name of directory so it can be ultimately renamed to 'personasbackend'.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Wed, 02 Apr 2008 11:59:36 -0700 |
parents | PersonasBackend/personas/sections.py@ce2e1efb1eca |
children |
line wrap: on
line source
from django.core import urlresolvers from django.contrib.sites.models import Site class Sections( object ): def __init__( self, *sections ): self.sections = sections self.sidebar_entries = [] self.views = {} self.names = {} for section in self.sections: if section.in_sidebar: self.sidebar_entries.append( section ) assert section.name not in self.names self.names[section.name] = section assert section.view not in self.views self.views[section.view] = section curr_section = section while curr_section.parent_name: curr_parent = self.names[curr_section.parent_name] section.parents.append( curr_parent ) curr_section = curr_parent class Section( object ): def __init__( self, name, view, in_sidebar = False, parent_name = None ): self.name = name self.view = view self.in_sidebar = in_sidebar self.parent_name = parent_name # This will be filled out by the parent Sections object. self.parents = [] def url( self ): return urlresolvers.reverse( self.view ) sections = Sections( Section( "Home", "PersonasBackend.personas.views.home_view", in_sidebar = True ), Section( "Browse", "PersonasBackend.personas.views.list_view", parent_name = "Home", in_sidebar = True ), Section( "Create", "PersonasBackend.personas.views.new_view", parent_name = "Home", in_sidebar = True ), Section( "Edit", "PersonasBackend.personas.views.edit_view", parent_name = "Home" ), Section( "Log in", "django.contrib.auth.views.login", parent_name = "Home" ), Section( "Log out", "django.contrib.auth.views.logout", parent_name = "Home" ) ) def context( request ): viewfunc, args, kwargs = urlresolvers.resolve( request.path ) viewname = ".".join( [viewfunc.__module__, viewfunc.__name__] ) return { "site_name" : Site.objects.get_current().name, "sidebar_entries" : sections.sidebar_entries, "section" : sections.views.get( viewname, None ) }