--- /dev/null
+from django.db.models import Q
+import django_select2
+
+from emissions.models import SoundFile
+
+class SoundFilesView(django_select2.views.Select2View):
+ def get_results(self, request, terms, page, context):
+ queryset = SoundFile.objects.all()
+ for term in terms.split():
+ queryset = queryset.filter(Q(title__icontains=term) |
+ Q(episode__title__icontains=term) |
+ Q(episode__emission__title__icontains=term))
+ def fmt(soundfile):
+ return '%s - %s - %s' % (soundfile.episode.emission.title,
+ soundfile.episode.title,
+ soundfile.title or soundfile.id)
+ return ('nil', False, ((x.id, fmt(x)) for x in queryset.select_related()))
+
+soundfiles = SoundFilesView.as_view()