-def tagged_object_list(request, tags=''):
- # Prevent DoS attacks on our database
- if len(tags.split('/')) > 6:
- raise Http404
+def audiobook_list(request):
+ return book_list(request, ~Q(mp3_file='') | ~Q(ogg_file=''),
+ template_name='catalogue/audiobook_list.html')
+
+
+def daisy_list(request):
+ return book_list(request, ~Q(daisy_file=''),
+ template_name='catalogue/daisy_list.html')
+
+
+def differentiate_tags(request, tags, ambiguous_slugs):
+ beginning = '/'.join(tag.url_chunk for tag in tags)
+ unparsed = '/'.join(ambiguous_slugs[1:])
+ options = []
+ for tag in models.Tag.objects.exclude(category='book').filter(slug=ambiguous_slugs[0]):
+ options.append({
+ 'url_args': '/'.join((beginning, tag.url_chunk, unparsed)).strip('/'),
+ 'tags': [tag]
+ })
+ return render_to_response('catalogue/differentiate_tags.html',
+ {'tags': tags, 'options': options, 'unparsed': ambiguous_slugs[1:]},
+ context_instance=RequestContext(request))