Event slugs are only unique among one organizer

This commit is contained in:
Raphael Michel
2014-09-14 14:26:41 +02:00
parent b440036942
commit 0226b12840
5 changed files with 7 additions and 6 deletions

View File

@@ -52,7 +52,8 @@ class PermissionMiddleware:
try:
request.event = Event.objects.get(
slug=url.kwargs['event'],
permitted__id__exact=request.user.id
permitted__id__exact=request.user.id,
organizer__slug=url.kwargs['organizer'],
)
except:
except Event.DoesNotExist:
return HttpResponseNotFound(_("The selected event was not found or you have no permission to administrate it."))

View File

@@ -10,7 +10,7 @@
{% for g in event_list %}
<li class="dropdown-header">{{ g.grouper }}</li>
{% for e in g.list %}
<li><a href="{% url "control:event.index" event=e.slug %}">{{ e.name }}</a></li>
<li><a href="{% url "control:event.index" organizer=g.grouper.slug event=e.slug %}">{{ e.name }}</a></li>
{% endfor %}
{% endfor %}
</ul>

View File

@@ -16,7 +16,7 @@
<tbody>
{% for e in events %}
<tr>
<td><strong><a href="{% url "control:event.index" event=e.slug %}">{{ e.name }}</a></strong></td>
<td><strong><a href="{% url "control:event.index" organizer=e.organizer.slug event=e.slug %}">{{ e.name }}</a></strong></td>
<td>{{ e.organizer }}</td>
<td>{{ e.get_date_from_display }}</td>
<td>{{ e.get_date_to_display }}</td>

View File

@@ -3,7 +3,7 @@ from tixlcontrol.views import main
urlpatterns = patterns('',
url(r'^$', 'tixlcontrol.views.main.index', name='index'),
url(r'^event/(?P<event>\w+)/$', 'tixlcontrol.views.event.index', name='event.index'),
url(r'^event/(?P<organizer>[^/]+)/(?P<event>[^/]+)/$', 'tixlcontrol.views.event.index', name='event.index'),
url(r'^events/$', main.EventList.as_view(), name='events'),
url(r'^logout$', 'tixlcontrol.views.auth.logout', name='auth.logout'),
url(r'^login$', 'tixlcontrol.views.auth.login', name='auth.login'),

View File

@@ -1,5 +1,5 @@
from django.shortcuts import render
def index(request, event):
def index(request, organizer, event):
return render(request, 'tixlcontrol/event/index.html', {})