1 from django.core.urlresolvers import reverse
2 from django.db.models import Q
3 from django.http import Http404, JsonResponse
4 from django.views.generic.edit import UpdateView
5 import django_select2.views
7 from emissions.models import SoundFile, Episode
8 from .models import Topik
10 class SoundFilesView(django_select2.views.AutoResponseView):
11 def get(self, request, *args, **kwargs):
12 terms = kwargs.get('term', request.GET.get('term', ''))
13 queryset = SoundFile.objects.all()
14 for term in terms.split():
15 queryset = queryset.filter(podcastable=True).filter(Q(title__icontains=term) |
16 Q(episode__title__icontains=term) |
17 Q(episode__emission__title__icontains=term))
19 return '%s - %s - %s' % (soundfile.episode.emission.title,
20 soundfile.episode.title,
21 soundfile.title or soundfile.id)
35 soundfiles = SoundFilesView.as_view()
38 class EpisodesView(django_select2.views.AutoResponseView):
39 def get(self, request, *args, **kwargs):
40 terms = kwargs.get('term', request.GET.get('term', ''))
41 queryset = Episode.objects.all()
42 for term in terms.split():
43 queryset = queryset.filter(Q(title__icontains=term) |
44 Q(emission__title__icontains=term))
46 return '%s - %s' % (episode.emission.title, episode.title)
60 episodes = EpisodesView.as_view()
63 class TopikEdit(UpdateView):
66 def get_form_class(self):
67 from .forms import TopikEditForm
70 def get_success_url(self):
71 return reverse('combo-manager-page-view', kwargs={'pk': self.object.page.id})
73 topik_edit = TopikEdit.as_view()