Mercurial > hg > savane-forge
changeset 95:801166bc508a
Add '/u', '/us', '/p', '/pr' URL aliases
author | Sylvain Beucler <beuc@beuc.net> |
---|---|
date | Wed, 29 Jul 2009 15:01:00 +0200 |
parents | 5c90eef9f2c1 |
children | 6de5ac0cba27 |
files | src/savane/my/views.py src/savane/svmain/urls.py src/savane/svmain/views.py |
diffstat | 3 files changed, 37 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/savane/my/views.py +++ b/src/savane/my/views.py @@ -18,7 +18,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. from django.template import RequestContext -from django.shortcuts import render_to_response +from django.shortcuts import render_to_response, get_object_or_404 from django.http import HttpResponseRedirect from django.contrib.auth import authenticate, login, logout from django.contrib.auth.decorators import login_required
--- a/src/savane/svmain/urls.py +++ b/src/savane/svmain/urls.py @@ -20,6 +20,7 @@ from django.conf.urls.defaults import * from savane.svmain import models as svmain_models +import views urlpatterns = patterns ('', url(r'^$', 'django.views.generic.simple.direct_to_template', @@ -33,15 +34,19 @@ # TODO: not sure about the views naming convention - all this # "models in 'svmain', views in 'my'" is getting messy, probably a # mistake from me (Beuc) :P - url(r'^projects/(?P<slug>[-\w]+)$', 'django.views.generic.list_detail.object_detail', + url(r'^p/(?P<slug>[-\w]+)$', 'django.views.generic.list_detail.object_detail', { 'queryset' : svmain_models.ExtendedGroup.objects.all(), 'slug_field' : 'name' }, name='savane.svmain.group_detail'), + url(r'^pr/(?P<slug>[-\w]+)$', views.group_redir), + url(r'^projects/(?P<slug>[-\w]+)$', views.group_redir), - url(r'^users/(?P<slug>[-\w]+)$', 'django.views.generic.list_detail.object_detail', + url(r'^u/(?P<slug>[-\w]+)$', 'django.views.generic.list_detail.object_detail', { 'queryset' : svmain_models.ExtendedUser.objects.all(), 'slug_field' : 'username' }, name='savane.svmain.user_detail'), + url(r'^us/(?P<slug>[-\w]+)$', views.user_redir), + url(r'^users/(?P<slug>[-\w]+)$', views.user_redir), url(r'^license/$', 'django.views.generic.list_detail.object_list', { 'queryset' : svmain_models.License.objects.all(), },
new file mode 100644 --- /dev/null +++ b/src/savane/svmain/views.py @@ -0,0 +1,29 @@ +# Manage user attributes +# Copyright (C) 2009 Sylvain Beucler +# +# This file is part of Savane. +# +# Savane is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# Savane is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +from django.http import HttpResponseRedirect +from django.shortcuts import render_to_response, get_object_or_404 +import models as svmain_models + +def group_redir(request, slug): + eg = get_object_or_404(svmain_models.ExtendedGroup, name=slug) + return HttpResponseRedirect(eg.get_absolute_url()) + +def user_redir(request, slug): + ug = get_object_or_404(svmain_models.ExtendedUser, username=slug) + return HttpResponseRedirect(ug.get_absolute_url())