]> git.0d.be Git - panikweb.git/blobdiff - panikweb/search.py
add categories to sound page
[panikweb.git] / panikweb / search.py
index d1617e230b6ab07d569419ef9830438549a38d1d..573d1b0a487a9e718a3a5f0273b59bebdb694b4b 100644 (file)
@@ -150,7 +150,7 @@ view = search_view_factory(SearchView,
 
 
 
-class ListenArchivesForm(SearchForm):
+class ListenArchivesForm(FacetedSearchForm):
     def no_query_found(self):
         return self.searchqueryset.all()
 
@@ -159,17 +159,21 @@ class ListenArchivesForm(SearchForm):
         return sqs.load_all()
 
 
-class ListenArchivesView(haystack.views.SearchView):
+class ListenArchivesView(FacetedSearchView):
     template = 'listen/archives.html'
 
     def __init__(self):
-        sqs = RelatedSearchQuerySet().filter(django_ct='emissions.soundfile').order_by('-date')
+        sqs = RelatedSearchQuerySet().models(SoundFile).facet('categories').order_by('-date')
         super(ListenArchivesView, self).__init__(searchqueryset=sqs,
                 form_class=ListenArchivesForm, results_per_page=20)
 
     def extra_context(self):
         context = super(ListenArchivesView, self).extra_context()
         context['sectionName'] = "Listen"
+        context['selected_categories'] = [
+                x.split(':', 1)[1] for x in self.request.GET.getlist('selected_facets')
+                if x.startswith('categories_exact')]
+        context['facets']['fields']['categories'].sort()
         return context
 
 listenArchives = search_view_factory(ListenArchivesView)