view_name='catalogue_api_book',
lookup_field='slug'
)
+ audiences = serializers.ListField(source='audiences_pl')
class Meta:
model = Book
'isbn_pdf', 'isbn_epub', 'isbn_mobi',
'abstract',
'has_mp3_file', 'has_sync_file',
+ 'elevenreader_link', 'content_warnings', 'audiences',
]
class BookSerializer11Labs(serializers.ModelSerializer):
def ridero_link(self):
return 'https://ridero.eu/%s/books/wl_%s/' % (get_language(), self.slug.replace('-', '_'))
+ def elevenreader_link(self):
+ return 'https://elevenreader.io/audiobooks/wolnelektury:' + self.get_first_text().slug
+
+ def content_warnings(self):
+ warnings_def = {
+ 'wulgaryzmy': _('wulgaryzmy'),
+ }
+ warnings = self.get_extra_info_json().get('content_warnings', [])
+ warnings = [
+ warnings_def.get(w, w)
+ for w in warnings
+ ]
+ warnings.sort()
+ return warnings
+
def full_sort_key(self):
return self.SORT_KEY_SEP.join((self.sort_key_author, self.sort_key, str(self.id)))
@register.inclusion_tag('catalogue/snippets/content_warning.html')
def content_warning(book):
- warnings_def = {
- 'wulgaryzmy': _('wulgaryzmy'),
- }
- warnings = book.get_extra_info_json().get('content_warnings', [])
- warnings = sorted(
- warnings_def.get(w, w)
- for w in warnings
- )
return {
- "warnings": warnings
+ "warnings": book.content_warnings(),
}