X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/ac6111b68183ba7da48252eb0f7389b24ede20a9..f9ebfca6f51df543810066816ce90b79932cd458:/apps/catalogue/models/book.py
diff --git a/apps/catalogue/models/book.py b/apps/catalogue/models/book.py
index 5bc1e1021..eab6b2de3 100644
--- a/apps/catalogue/models/book.py
+++ b/apps/catalogue/models/book.py
@@ -86,6 +86,11 @@ class Book(models.Model):
def get_absolute_url(self):
return ('catalogue.views.book_detail', [self.slug])
+ @staticmethod
+ @permalink
+ def create_url(slug):
+ return ('catalogue.views.book_detail', [slug])
+
@property
def name(self):
return self.title
@@ -196,7 +201,7 @@ class Book(models.Model):
try:
index.index_book(self, book_info)
if index_tags:
- idx.index_tags()
+ index.index_tags()
if commit:
index.index.commit()
except Exception, e:
@@ -481,19 +486,19 @@ class Book(models.Model):
def pretty_title(self, html_links=False):
book = self
- names = list(book.tags.filter(category='author'))
-
- books = []
- while book:
- books.append(book)
- book = book.parent
- names.extend(reversed(books))
+ rel_info = book.related_info()
+ names = [(name, Tag.create_url('author', slug))
+ for name, slug in rel_info['tags']['author']]
+ if 'parents' in rel_info:
+ books = [(name, Book.create_url(slug))
+ for name, slug in rel_info['parents']]
+ names.extend(reversed(books))
+ names.append((self.title, self.get_absolute_url()))
if html_links:
- names = ['%s' % (tag.get_absolute_url(), tag.name) for tag in names]
+ names = ['%s' % (tag[1], tag[0]) for tag in names]
else:
- names = [tag.name for tag in names]
-
+ names = [tag[0] for tag in names]
return ', '.join(names)
@classmethod