summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErnesto Rico-Schmidt <e.rico.schmidt@gmail.com>2011-03-13 17:42:51 (GMT)
committerErnesto Rico-Schmidt <e.rico.schmidt@gmail.com>2011-03-13 17:42:51 (GMT)
commitb1c06ac9b075be9c551b906d0f323bc2b9c35c00 (patch)
treebabb993197ca95d7e675e444fe8d3bd0a69676a1
parent1ea3eeb4c99a365a38bf3b64605f91ac0dfea788 (diff)
added filtering to the show list view.
-rw-r--r--program/views.py26
1 files changed, 23 insertions, 3 deletions
diff --git a/program/views.py b/program/views.py
index b9f476b..062ce6d 100644
--- a/program/views.py
+++ b/program/views.py
@@ -1,4 +1,5 @@
from django.views.generic.list import ListView
+from django.shortcuts import get_object_or_404
from models import BroadcastFormat, MusicFocus, Note, Show, ShowInformation, ShowTopic
@@ -6,7 +7,6 @@ from datetime import datetime, timedelta
class ShowListView(ListView):
context_object_name = 'show_list'
- model = Show
def get_context_data(self, **kwargs):
context = super(ShowListView, self).get_context_data(**kwargs)
@@ -17,7 +17,27 @@ class ShowListView(ListView):
context['showtopic_list'] = ShowTopic.objects.all()
return context
-
+
+ def get_queryset(self):
+ if 'broadcastformat' in self.request.GET:
+ broadcastformat = get_object_or_404(BroadcastFormat, slug=self.request.GET['broadcastformat'])
+
+ return Show.objects.filter(broadcastformat=broadcastformat)
+ elif 'musicfocus' in self.request.GET:
+ musicfocus = get_object_or_404(MusicFocus, slug=self.request.GET['musicfocus'])
+
+ return Show.objects.filter(musicfocus=musicfocus)
+ elif 'showinformation' in self.request.GET:
+ showinformation = get_object_or_404(ShowInformation, slug=self.request.GET['showinformation'])
+
+ return Show.objects.filter(showinformation=showinformation)
+ elif 'showtopic' in self.request.GET:
+ showtopic = get_object_or_404(ShowTopic, slug=self.request.GET['showtopic'])
+
+ return Show.objects.filter(showtopic=showtopic)
+ else:
+ return Show.objects.all()
+
class RecommendationsView(ListView):
context_object_name = 'recommendations'
template_name = 'program/recommendations.html'
@@ -26,4 +46,4 @@ class RecommendationsView(ListView):
now = datetime.now()
in_one_week = now + timedelta(weeks=1)
- return Note.objects.filter(status=1, timeslot__start__range=(now, in_one_week))[:10] \ No newline at end of file
+ return Note.objects.filter(status=1, timeslot__start__range=(now, in_one_week))[:10]