Refs #1286 -- Show variations in list of quotas

This commit is contained in:
Raphael Michel
2019-05-16 11:35:19 +02:00
parent 45e98546d6
commit e1992bb99f
2 changed files with 16 additions and 3 deletions

View File

@@ -60,7 +60,13 @@
<td> <td>
<ul> <ul>
{% for item in q.items.all %} {% for item in q.items.all %}
<li><a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.id %}">{{ item }}</a></li> {% if not item.has_variations %}
<li><a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.id %}">{{ item }}</a></li>
{% endif %}
{% endfor %}
{% for v in q.variations.all %}
<li><a href="{% url "control:event.item.variations" organizer=request.event.organizer.slug event=request.event.slug item=v.item.id %}">
{{ v.item }} {{ v }}</a></li>
{% endfor %} {% endfor %}
</ul> </ul>
</td> </td>

View File

@@ -3,7 +3,7 @@ import json
from django.contrib import messages from django.contrib import messages
from django.core.files import File from django.core.files import File
from django.db import transaction from django.db import transaction
from django.db.models import Count, F, Q from django.db.models import Count, F, Prefetch, Q
from django.forms.models import inlineformset_factory from django.forms.models import inlineformset_factory
from django.http import Http404, HttpResponseRedirect from django.http import Http404, HttpResponseRedirect
from django.shortcuts import redirect from django.shortcuts import redirect
@@ -565,7 +565,14 @@ class QuotaList(PaginationMixin, ListView):
def get_queryset(self): def get_queryset(self):
qs = Quota.objects.filter( qs = Quota.objects.filter(
event=self.request.event event=self.request.event
).prefetch_related("items") ).prefetch_related(
Prefetch(
"items",
queryset=Item.objects.annotate(has_variations=Count('variations'))
),
"variations",
"variations__item"
)
if self.request.GET.get("subevent", "") != "": if self.request.GET.get("subevent", "") != "":
s = self.request.GET.get("subevent", "") s = self.request.GET.get("subevent", "")
qs = qs.filter(subevent_id=s) qs = qs.filter(subevent_id=s)