On Friday 26 June 2009 21:19:30 Rajesh D wrote:
> > I have a conference management application. It has a list of menu items
> > on the lefthand side. These menus are created by a templatetag from a
> > list of menus in views.py. At various stages of the conference, menu
> > items have to be enabled or disabled. For example, 'submit talk' has to
> > be hidden after the last date for talk submission is over. At present I
> > am doing this by commenting out the menu item in views.py and commenting
> > out the corresponding url in urls.py. But this involves the admins
> > delving into code, which is not a good thing as there is no guarantee
> > that the admins will be programmers. The menu items can be put in a
> > model, and have a boolean field 'activate'. That is not a problem. But if
> > the url is not commented out in urls.py, there is nothing to prevent the
> > user from directly typing in the url. So is there some way where these
> > urls can also be stored in a model so that the admin just has to set
> > 'activate' to false and the menu will not appear and the url will not be
> > available for the user to directly type it in?
>
> You could use custom middleware code to set request.urlconf[1] from a
> function that dynamically puts together the menu URLs based on your
> model's activate flag.
>
> For an example of dynamically constructing URL patterns at run time,
> see Django Admin's sites.AdminSite.get_urls method[2]. Note that this
> admin method isn't called per request but the examply is still useful
> to understand how simple it is to return a custom URL pattern list.
> The key is to wire that function into the custom middleware mentioned
> above.

thanks for the detailed reply, but I am terrified of going any where near 
middleware. I compromised by making a decorator that checks whether the menu 
item is enabled when ever a view function is called from that menu. Works for 
me (am fighting a deadline).
-- 
regards
kg
http://lawgon.livejournal.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to