From 590ff2b6778cb14af9fc7fb02bc94b36e4abfe61 Mon Sep 17 00:00:00 2001 From: "N. Geisler" <ngeisler@fachschaft.informatik.tu-darmstadt.de> Date: Mon, 11 May 2020 00:03:09 +0200 Subject: [PATCH] adapt AK list filters remove tags list add tracks list filter categories list by event allow ak list filtering by track --- .../templates/AKSubmission/ak_list.html | 13 +++++++---- .../templates/AKSubmission/tracks_list.html | 4 ++++ .../templatetags/tags_AKSubmission.py | 5 ++++ AKSubmission/urls.py | 1 + AKSubmission/views.py | 23 +++++++++++++++---- 5 files changed, 36 insertions(+), 10 deletions(-) create mode 100644 AKSubmission/templates/AKSubmission/tracks_list.html diff --git a/AKSubmission/templates/AKSubmission/ak_list.html b/AKSubmission/templates/AKSubmission/ak_list.html index ac470dcf..3e4098bc 100644 --- a/AKSubmission/templates/AKSubmission/ak_list.html +++ b/AKSubmission/templates/AKSubmission/ak_list.html @@ -26,14 +26,17 @@ {% block content %} <h1>{{ event.name }}: {% trans "AK List" %}</h1> - <b>{% trans 'Categories' %}:</b> - {% category_list categories event.slug %} - + {% if categories.count > 0 %} + <b>{% trans 'Categories' %}:</b> + {% category_list categories event.slug %} + {% endif %} <br><br> - <b>{% trans 'Tags' %}:</b> - {% tag_list tags.all event.slug %} + {% if tracks.count > 0 %} + <b>{% trans 'Tracks' %}:</b> + {% track_list tracks event.slug %} + {% endif %} <br><br> diff --git a/AKSubmission/templates/AKSubmission/tracks_list.html b/AKSubmission/templates/AKSubmission/tracks_list.html new file mode 100644 index 00000000..44a5926b --- /dev/null +++ b/AKSubmission/templates/AKSubmission/tracks_list.html @@ -0,0 +1,4 @@ +{% for track in tracks.all %} + <a href="{% url 'submit:ak_list_by_track' event_slug=event_slug track_pk=track.pk %}"><span + class="badge badge-info">{{ track }}</span></a> +{% endfor %} diff --git a/AKSubmission/templatetags/tags_AKSubmission.py b/AKSubmission/templatetags/tags_AKSubmission.py index 0a80c2ab..e0daaf65 100644 --- a/AKSubmission/templatetags/tags_AKSubmission.py +++ b/AKSubmission/templatetags/tags_AKSubmission.py @@ -16,6 +16,11 @@ def tag_list(tags, event_slug): return {"tags": tags, "event_slug": event_slug} +@register.inclusion_tag("AKSubmission/tracks_list.html") +def track_list(tracks, event_slug): + return {"tracks": tracks, "event_slug": event_slug} + + @register.inclusion_tag("AKSubmission/category_list.html") def category_list(categories, event_slug): return {"categories": categories, "event_slug": event_slug} diff --git a/AKSubmission/urls.py b/AKSubmission/urls.py index 71ed56f6..7f55980b 100644 --- a/AKSubmission/urls.py +++ b/AKSubmission/urls.py @@ -18,6 +18,7 @@ urlpatterns = [ path('aks/', views.AKListView.as_view(), name='ak_list'), path('aks/category/<int:category_pk>/', views.AKListByCategoryView.as_view(), name='ak_list_by_category'), path('aks/tag/<int:tag_pk>/', views.AKListByTagView.as_view(), name='ak_list_by_tag'), + path('aks/track/<int:track_pk>/', views.AKListByTrackView.as_view(), name='ak_list_by_track'), path('owner/', views.AKOwnerCreateView.as_view(), name='akowner_create'), path('new/', views.AKOwnerSelectDispatchView.as_view(), name='akowner_select'), path('owner/edit/', views.AKOwnerEditDispatchView.as_view(), name='akowner_edit_dispatch'), diff --git a/AKSubmission/views.py b/AKSubmission/views.py index bd392637..dee7f16c 100644 --- a/AKSubmission/views.py +++ b/AKSubmission/views.py @@ -7,7 +7,7 @@ from django.utils.translation import gettext_lazy as _ from django.views import View from django.views.generic import ListView, DetailView, CreateView, UpdateView, DeleteView, RedirectView -from AKModel.models import AK, AKCategory, AKTag, AKOwner, AKSlot +from AKModel.models import AK, AKCategory, AKTag, AKOwner, AKSlot, AKTrack from AKModel.views import EventSlugMixin from AKModel.views import FilterByEventSlugMixin from AKSubmission.forms import AKWishForm, AKOwnerForm, AKEditForm, AKSubmissionForm, AKDurationForm @@ -62,9 +62,9 @@ class AKListView(FilterByEventSlugMixin, ListView): def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(object_list=object_list, **kwargs) - context['categories'] = AKCategory.objects.all() - context["tags"] = AKTag.objects.all() - context["filter_condition_string"] = self.filter_condition_string + context['categories'] = AKCategory.objects.filter(event=self.event) + context['tracks'] = AKTrack.objects.filter(event=self.event) + context['filter_condition_string'] = self.filter_condition_string return context @@ -85,7 +85,7 @@ class AKListByTagView(AKListView): tag = None def get_queryset(self): - # Find category based on event slug + # Find tag based on event slug try: self.tag = AKTag.objects.get(pk=self.kwargs['tag_pk']) self.filter_condition_string = f"{_('Tag')} = {self.tag.name}" @@ -94,6 +94,19 @@ class AKListByTagView(AKListView): return super().get_queryset().filter(tags=self.tag) +class AKListByTrackView(AKListView): + track = None + + def get_queryset(self): + # Find track based on event slug + try: + self.track = AKTrack.objects.get(pk=self.kwargs['track_pk']) + self.filter_condition_string = f"{_('Track')} = {self.track.name}" + except AKTrack.DoesNotExist: + raise Http404 + return super().get_queryset().filter(track=self.track) + + class AKAndAKWishSubmissionView(EventSlugMixin, CreateView): model = AK template_name = 'AKSubmission/submit_new.html' -- GitLab