X-Git-Url: https://git.0d.be/?p=django-panik-combo.git;a=blobdiff_plain;f=panikombo%2Fviews.py;h=a76ac84f02b75242c83f6396af9e04e8fe0fc750;hp=9fc516d418980dcd049cc1e69a393a464d99dcff;hb=efe26dec17e20d9e10317a12a6e8aaf2b7732345;hpb=168b4fc8814408ed95c02293d3dce5a76a789f1c diff --git a/panikombo/views.py b/panikombo/views.py index 9fc516d..a76ac84 100644 --- a/panikombo/views.py +++ b/panikombo/views.py @@ -1,13 +1,16 @@ +from django.core.urlresolvers import reverse from django.db.models import Q +from django.views.generic.edit import UpdateView import django_select2 -from emissions.models import SoundFile +from emissions.models import SoundFile, Episode +from .models import Topik 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) | + queryset = queryset.filter(podcastable=True).filter(Q(title__icontains=term) | Q(episode__title__icontains=term) | Q(episode__emission__title__icontains=term)) def fmt(soundfile): @@ -17,3 +20,29 @@ class SoundFilesView(django_select2.views.Select2View): return ('nil', False, ((x.id, fmt(x)) for x in queryset.select_related())) soundfiles = SoundFilesView.as_view() + + +class EpisodesView(django_select2.views.Select2View): + def get_results(self, request, terms, page, context): + 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())) + +episodes = EpisodesView.as_view() + + +class TopikEdit(UpdateView): + model = Topik + + def get_form_class(self): + from .forms import TopikEditForm + return TopikEditForm + + def get_success_url(self): + return reverse('combo-manager-page-view', kwargs={'pk': self.object.page.id}) + +topik_edit = TopikEdit.as_view()