X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/d9d5b7bc7f432058fd3bccfb096c88438e5364a9..f7833f76b5f9555b0d95d23d47fc886a3528a335:/apps/catalogue/models.py?ds=inline diff --git a/apps/catalogue/models.py b/apps/catalogue/models.py index 0cd19cc0c..2c1f66a6b 100644 --- a/apps/catalogue/models.py +++ b/apps/catalogue/models.py @@ -47,6 +47,8 @@ class Tag(TagBase): user = models.ForeignKey(User, blank=True, null=True) book_count = models.IntegerField(_('book count'), default=0, blank=False, null=False) + gazeta_link = models.CharField(blank=True, max_length=240) + wiki_link = models.CharField(blank=True, max_length=240) def has_description(self): return len(self.description) > 0 @@ -88,6 +90,9 @@ class Book(models.Model): _short_html = models.TextField(_('short HTML'), editable=False) parent_number = models.IntegerField(_('parent number'), default=0) extra_info = JSONField(_('extra information')) + gazeta_link = models.CharField(blank=True, max_length=240) + wiki_link = models.CharField(blank=True, max_length=240) + # Formats xml_file = models.FileField(_('XML file'), upload_to=book_upload_path('xml'), blank=True) @@ -114,7 +119,7 @@ class Book(models.Model): return mark_safe(self._short_html) else: tags = self.tags.filter(~Q(category__in=('set', 'theme', 'book'))) - tags = [u'%s' % (tag.get_absolute_url(), tag.name) for tag in tags] + tags = [mark_safe(u'%s' % (tag.get_absolute_url(), tag.name)) for tag in tags] formats = [] if self.html_file: @@ -130,6 +135,8 @@ class Book(models.Model): if self.ogg_file: formats.append(u'OGG' % self.ogg_file.url) + formats = [mark_safe(format) for format in formats] + self._short_html = unicode(render_to_string('catalogue/book_short.html', {'book': self, 'tags': tags, 'formats': formats})) self.save() @@ -224,11 +231,14 @@ class Book(models.Model): if hasattr(book_info, 'parts'): for n, part_url in enumerate(book_info.parts): base, slug = part_url.rsplit('/', 1) - child_book = Book.objects.get(slug=slug) - child_book.parent = book - child_book.parent_number = n - child_book.save() - + try: + child_book = Book.objects.get(slug=slug) + child_book.parent = book + child_book.parent_number = n + child_book.save() + except Book.DoesNotExist, e: + raise Book.DoesNotExist(u'Book with slug = "%s" does not exist.' % slug) + book_descendants = list(book.children.all()) while len(book_descendants) > 0: child_book = book_descendants.pop(0) @@ -307,7 +317,7 @@ class Fragment(models.Model): if len(self._short_html): return mark_safe(self._short_html) else: - book_authors = [u'%s' % (tag.get_absolute_url(), tag.name) + book_authors = [mark_safe(u'%s' % (tag.get_absolute_url(), tag.name)) for tag in self.book.tags if tag.category == 'author'] self._short_html = unicode(render_to_string('catalogue/fragment_short.html',