if no transport selected, consider not answered

This commit is contained in:
Élie Bouttier 2016-10-13 19:24:13 +02:00
parent 65d23ddc25
commit 7dd687594b
1 changed files with 3 additions and 1 deletions

View File

@ -7,7 +7,7 @@ from django.contrib.auth.models import User
from django.contrib.sites.shortcuts import get_current_site
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import reverse
from django.db.models import Q
from django.db.models import Q, Count
from django.shortcuts import get_object_or_404, redirect, render
from django.views.generic import CreateView, DetailView, ListView, UpdateView
from django.utils.translation import ugettext as _
@ -355,7 +355,9 @@ def speaker_list(request):
q = Q()
if 'unknown' in data['transport']:
data['transport'].remove('unknown')
speakers = speakers.annotate(transport_count=Count('transport'))
q |= Q(need_transport=None)
q |= Q(need_transport=True, transport_count=0)
if len(data['transport']):
q |= (Q(need_transport=True) & Q(reduce(lambda x, y: x | y, [Q(transport__pk=pk) for pk in data['transport']])))
speakers = speakers.filter(q)