X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/06954b630bc0f09afd4e7e1e9cd04a53ff6347b4..6cc5df1faff7c600d0cf4b4174621eca99e86354:/apps/catalogue/feeds.py diff --git a/apps/catalogue/feeds.py b/apps/catalogue/feeds.py index c79e05809..836202aab 100644 --- a/apps/catalogue/feeds.py +++ b/apps/catalogue/feeds.py @@ -5,6 +5,7 @@ from django.contrib.sites.models import Site from django.contrib.syndication.views import Feed from django.core.urlresolvers import reverse +from django.db.models import Q from catalogue import models @@ -29,25 +30,31 @@ class AudiobookFeed(Feed): } def get_object(self, request, type): - return type + return {'type': type, 'all': 'all' in request.GET} - def title(self, type): - return self.titles[type] + def title(self, args): + return self.titles[args['type']] - def link(self, type): - return reverse('audiobook_feed', args=(type,)) + def link(self, args): + return reverse('audiobook_feed', args=(args['type'],)) - def items(self, type): + def items(self, args): objects = models.BookMedia.objects.order_by('-uploaded_at') if type == 'all': objects = objects.filter(type__in=('mp3', 'ogg', 'daisy')) else: - objects = objects.filter(type=type)[:20] + objects = objects.filter(type=args['type']) + if not args['all']: + objects = objects[:50] return objects def item_title(self, item): return item.name + def item_categories(self, item): + return sorted(set(author.name for author in + item.book.tags.filter(category='author'))) + def item_description(self, item): lines = [] artist = item.get_extra_info_value().get('artist_name', None) @@ -59,10 +66,7 @@ class AudiobookFeed(Feed): return u'
\n'.join(lines) def item_link(self, item): - if item.book_set.exists(): - return item.book_set.all()[0].get_absolute_url() - else: - return item.file.url + return item.book.get_absolute_url() def item_guid(self, item): return absolute_url(item.file.url)