fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ignore comments in xml when indexing; make-xml-zip script
[wolnelektury.git]
/
apps
/
catalogue
/
feeds.py
diff --git
a/apps/catalogue/feeds.py
b/apps/catalogue/feeds.py
index
356bb02
..
836202a
100644
(file)
--- 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.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
from catalogue import models
@@
-29,25
+30,31
@@
class AudiobookFeed(Feed):
}
def get_object(self, request, type):
}
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 = 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_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)
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'<br/>\n'.join(lines)
def item_link(self, item):
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)
def item_guid(self, item):
return absolute_url(item.file.url)