From: Arthur Darcet Date: Sat, 2 Feb 2013 19:14:38 +0000 (+0100) Subject: Nicer urls for groups X-Git-Url: http://git.polytechnique.org/?p=xnet;a=commitdiff_plain;h=7eb52156cbd79d50aaa00cb41a48e653cbae97fd Nicer urls for groups --- diff --git a/xnet/accounts/decorators.py b/xnet/accounts/decorators.py index 825df8d..bc29091 100644 --- a/xnet/accounts/decorators.py +++ b/xnet/accounts/decorators.py @@ -12,8 +12,8 @@ class group_required(object): def __call__(self, view_func): @functools.wraps(view_func) - def wrapped_view_func(request, group_id, *args, **kwargs): - group = get_object_or_404(XGroup, pk=group_id) + def wrapped_view_func(request, group_slug, *args, **kwargs): + group = get_object_or_404(XGroup, short=group_slug) membership = request.user.memberships.filter( xgroup=group, level__gte=self.level, diff --git a/xnet/accounts/urls.py b/xnet/accounts/urls.py index 5f4b864..a7601a3 100644 --- a/xnet/accounts/urls.py +++ b/xnet/accounts/urls.py @@ -4,7 +4,7 @@ from django.conf.urls.defaults import patterns, url urlpatterns = patterns( 'xnet.accounts.views', url(r'^$', 'index', name='group-list'), - url(r'^home/([0-9]+)$', 'home', name='group-home'), - url(r'^directory/([0-9]+)$', 'directory', name='group-directory'), - url(r'^([a-zA-Z0-9]+)/delete/([a-zA-Z0-9\.]+)$', 'membership_delete', name='membership-delete'), + url(r'^(\w+)/$', 'home', name='group-home'), + url(r'^(\w+)/directory/?$', 'directory', name='group-directory'), + url(r'^(\w+)/delete/([a-zA-Z0-9\.]+)$', 'membership_delete', name='membership-delete'), ) diff --git a/xnet/accounts/views.py b/xnet/accounts/views.py index aab40ea..6a508fc 100644 --- a/xnet/accounts/views.py +++ b/xnet/accounts/views.py @@ -11,15 +11,14 @@ def index(request): 'sidebar': 'list', }) -def home(request, pk): +def home(request, slug): return render(request, 'groups/home.html', { - 'group': get_object_or_404(XGroup, pk=pk), + 'group': get_object_or_404(XGroup, short=slug), 'sidebar': 'home', }) @group_required() def directory(request, group, membership=None): - print(group.memberships.filter(state='enabled').order_by('level')) return render(request, 'groups/directory.html', { 'group': group, 'memberships': group.memberships. \ diff --git a/xnet/templates/groups/base.html b/xnet/templates/groups/base.html index eb9eeab..14db8a8 100644 --- a/xnet/templates/groups/base.html +++ b/xnet/templates/groups/base.html @@ -11,10 +11,10 @@

{{ group }}

{% endif %} diff --git a/xnet/templates/groups/index.html b/xnet/templates/groups/index.html index 9d3cd59..f12fc08 100644 --- a/xnet/templates/groups/index.html +++ b/xnet/templates/groups/index.html @@ -24,7 +24,7 @@