Skip to content
Snippets Groups Projects
Commit 0fb46af4 authored by Benjamin Hättasch's avatar Benjamin Hättasch
Browse files

Introduce event slug based url handling

Create mixin (FilterByEventSlugMixin) to handle even slug parsing in generic views
Add submission url config
Include submission urls in central url config
Add index view for submissions
parent e45df0d8
No related branches found
No related tags found
No related merge requests found
# Create your views here.
from django.http import Http404
from AKModel.models import Event
class FilterByEventSlugMixin:
"""
Mixin to filter different querysets based on a event slug from the request url
"""
event = None
def get_queryset(self):
# Find event based on event slug
try:
self.event = Event.get_by_slug(self.kwargs.get("event_slug", None))
except Event.DoesNotExist:
raise Http404
# Filter current queryset based on url event slug or return 404 if event slug is invalid
return super().get_queryset().filter(event=self.event)
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(object_list=object_list, **kwargs)
# Add event to context (to make it accessible in templates)
context["event"] = self.event
return context
......@@ -14,8 +14,9 @@ Including another URLconf
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('AKSubmission.urls', namespace='submit')),
]
from django.urls import path, include
from . import views
app_name = "submit"
urlpatterns = [
path(
'<slug:event_slug>/',
include([
path('submission/', views.SubmissionOverviewView.as_view(), name='submission_overview'),
])
),
]
# Create your views here.
from django.views.generic import ListView
from AKModel.models import AK
from AKModel.views import FilterByEventSlugMixin
class SubmissionOverviewView(FilterByEventSlugMixin, ListView):
model = AK
context_object_name = "AKs"
template_name = "AKSubmission/submission_overview.html"
ordering = ["type"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment