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,
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'),
)
'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. \
<h3>{{ group }}</h3>
<ul class="nav nav-tabs nav-stacked">
<li {% if sidebar == 'home' %}class="active"{% endif %}>
- <a href="{% url 'accounts:group-home' group.pk %}">Fiche</a>
+ <a href="{% url 'accounts:group-home' group.short %}">Fiche</a>
</li>
<li {% if sidebar == 'directory' %}class="active"{% endif %}>
- <a href="{% url 'accounts:group-directory' group.pk %}">Annuaire</a>
+ <a href="{% url 'accounts:group-directory' group.short %}">Annuaire</a>
</li>
</ul>
{% endif %}
<input type="text" class="search-field input-block-level" data-target="{{ group.grouper }}_type" />
<ul class="unstyled">
{% for item in group.list %}
- <li><a href="{% url 'accounts:group-home' item.pk %}">{{ item }}</a></li>
+ <li><a href="{% url 'accounts:group-home' item.short %}">{{ item }}</a></li>
{% endfor %}
</ul>
</div>