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
}
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)
- return objects[: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').iterator()))
+
def item_description(self, item):
lines = []
- artist = item.get_extra_info_value().get('artist_name', None)
+ artist = item.extra_info.get('artist_name', None)
if artist is not None:
lines.append(u'Czyta: %s' % artist)
- director = item.get_extra_info_value().get('artist_name', None)
+ director = item.extra_info.get('artist_name', None)
if director is not None:
lines.append(u'Reżyseruje: %s' % director)
return u'<br/>\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)