from django.core.urlresolvers import reverse
from django.db.models import Q
+from django.http import Http404, JsonResponse
from django.views.generic.edit import UpdateView
import django_select2.views
from emissions.models import SoundFile, Episode
from .models import Topik
-class SoundFilesView(django_select2.views.Select2View):
- def get_results(self, request, terms, page, context):
+class SoundFilesView(django_select2.views.AutoResponseView):
+ def get(self, request, *args, **kwargs):
+ terms = kwargs.get('term', request.GET.get('term', ''))
queryset = SoundFile.objects.all()
for term in terms.split():
queryset = queryset.filter(podcastable=True).filter(Q(title__icontains=term) |
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()))
+
+ return JsonResponse({
+ 'results': [
+ {
+ 'text': fmt(x),
+ 'id': x.pk,
+ }
+ for x in queryset
+ ],
+ 'more': False
+ })
+
soundfiles = SoundFilesView.as_view()
-class EpisodesView(django_select2.views.Select2View):
- def get_results(self, request, terms, page, context):
+class EpisodesView(django_select2.views.AutoResponseView):
+ def get(self, request, *args, **kwargs):
+ terms = kwargs.get('term', request.GET.get('term', ''))
queryset = Episode.objects.all()
for term in terms.split():
queryset = queryset.filter(Q(title__icontains=term) |
Q(emission__title__icontains=term))
def fmt(episode):
return '%s - %s' % (episode.emission.title, episode.title)
- return ('nil', False, ((x.id, fmt(x)) for x in queryset.select_related()))
+
+ return JsonResponse({
+ 'results': [
+ {
+ 'text': fmt(x),
+ 'id': x.pk,
+ }
+ for x in queryset
+ ],
+ 'more': False
+ })
+
episodes = EpisodesView.as_view()