X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/2856ae6ae36213ca7997366e0c7790e3c855e62f..7f95f426fe9d582ee5b33e73edc7ef7c78a82c12:/apps/catalogue/models/book.py diff --git a/apps/catalogue/models/book.py b/apps/catalogue/models/book.py index 0438afa21..b17d29392 100644 --- a/apps/catalogue/models/book.py +++ b/apps/catalogue/models/book.py @@ -95,6 +95,12 @@ class Book(models.Model): def name(self): return self.title + def language_code(self): + return constants.LANGUAGES_3TO2.get(self.language, self.language) + + def language_name(self): + return dict(settings.LANGUAGES).get(self.language_code(), "") + def book_tag_slug(self): return ('l-' + self.slug)[:120] @@ -391,6 +397,10 @@ class Book(models.Model): for child in self.children.all(): child.parent_cover_changed() + def other_versions(self): + """Find other versions (i.e. in other languages) of the book.""" + return type(self).objects.filter(common_slug=self.common_slug).exclude(pk=self.pk) + def related_info(self): """Keeps info about related objects (tags, media) in cache field.""" if self._related_info is not None: @@ -495,7 +505,7 @@ class Book(models.Model): book = self rel_info = book.related_info() names = [(related_tag_name(tag), Tag.create_url('author', tag['slug'])) - for tag in rel_info['tags']['author']] + for tag in rel_info['tags'].get('author', ())] if 'parents' in rel_info: books = [(name, Book.create_url(slug)) for name, slug in rel_info['parents']]