From 185debcb58d6c787cf3a1ecd46020b2d3b8c035d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20H=C3=A4ttasch?= <benjamin.haettasch@fachschaft.informatik.tu-darmstadt.de> Date: Mon, 11 May 2020 21:58:26 +0200 Subject: [PATCH] Fix categories for submission overview This fix ensures that the categories in submission overview are shown even when there is no AK with this category submitted yet. --- .../AKSubmission/submission_overview.html | 4 +-- AKSubmission/views.py | 31 +++++++++---------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/AKSubmission/templates/AKSubmission/submission_overview.html b/AKSubmission/templates/AKSubmission/submission_overview.html index 15748b2a..5c4ab1d0 100644 --- a/AKSubmission/templates/AKSubmission/submission_overview.html +++ b/AKSubmission/templates/AKSubmission/submission_overview.html @@ -70,7 +70,7 @@ </noscript> <ul class="nav nav-tabs" style="margin-bottom:15px"> - {% for category, _ in categories %} + {% for category, _ in categories_with_aks %} <li class="nav-item"> <a class="nav-link {% if forloop.first %}active{% endif %}" data-toggle="tab" href="#category_{{ category.pk }}">{{ category.name }}</a> @@ -79,7 +79,7 @@ </ul> <div id="akListTabbed" class="tab-content"> - {% for category, AKs in categories %} + {% for category, AKs in categories_with_aks %} <div class="tab-pane fade {% if forloop.first %}show active{% endif %}" id="category_{{ category.pk }}"> <p><b>{{ category.name }}:</b> {{ category.description }}</p> {% include "AKSubmission/ak_list_table.html" %} diff --git a/AKSubmission/views.py b/AKSubmission/views.py index dee7f16c..122db18f 100644 --- a/AKSubmission/views.py +++ b/AKSubmission/views.py @@ -14,33 +14,30 @@ from AKSubmission.forms import AKWishForm, AKOwnerForm, AKEditForm, AKSubmission class SubmissionOverviewView(FilterByEventSlugMixin, ListView): - model = AK - context_object_name = "AKs" + model = AKCategory + context_object_name = "categories" template_name = "AKSubmission/submission_overview.html" - ordering = ['category'] def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(object_list=object_list, **kwargs) # Sort AKs into different lists (by their category) - categories = [] - aks_for_category = [] ak_wishes = [] - current_category = None - for ak in context["AKs"]: - if ak.category != current_category: - current_category = ak.category - aks_for_category = [] - categories.append((current_category, aks_for_category)) - if settings.WISHES_AS_CATEGORY and ak.wish: - ak_wishes.append(ak) - else: - aks_for_category.append(ak) + categories_with_aks = [] + + for category in context["categories"]: + aks_for_category = [] + for ak in category.ak_set.all(): + if settings.WISHES_AS_CATEGORY and ak.wish: + ak_wishes.append(ak) + else: + aks_for_category.append(ak) + categories_with_aks.append((category, aks_for_category)) if settings.WISHES_AS_CATEGORY: - categories.append( + categories_with_aks.append( ({"name": _("Wishes"), "pk": "wish", "description": _("AKs one would like to have")}, ak_wishes)) - context["categories"] = categories + context["categories_with_aks"] = categories_with_aks # Get list of existing owners for event (for AK submission start) context["existingOwners"] = AKOwner.objects.filter(event=self.event) -- GitLab