]> git.0d.be Git - django-panik-combo.git/blobdiff - panikombo/views.py
replace django-select2 dependency by own code
[django-panik-combo.git] / panikombo / views.py
index faa454e1da73c2cf7322ba74efcdc57d06e69700..e2c2ac208633640392ae118dd09c14120ac3a414 100644 (file)
@@ -1,60 +1,61 @@
-from django.core.urlresolvers import reverse
+from django.contrib.auth.decorators import login_required
 from django.db.models import Q
-from django.http import Http404, JsonResponse
-from django.views.generic.edit import UpdateView
-import django_select2.views
+from django.http import JsonResponse
 
 from emissions.models import SoundFile, Episode
 
 
-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) |
-                    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 JsonResponse({
+@login_required
+def soundfiles(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)
+            | 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 JsonResponse(
+        {
             'results': [
                 {
                     'text': fmt(x),
                     'id': x.pk,
                 }
                 for x in queryset
-                ],
-            'more': False
-        })
+            ],
+            'more': False,
+        }
+    )
 
 
-soundfiles = SoundFilesView.as_view()
+@login_required
+def episodes(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)
 
-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 JsonResponse({
+    return JsonResponse(
+        {
             'results': [
                 {
                     'text': fmt(x),
                     'id': x.pk,
                 }
                 for x in queryset
-                ],
-            'more': False
-        })
-
-
-episodes = EpisodesView.as_view()
+            ],
+            'more': False,
+        }
+    )