X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/e432f8579852df4ffc3010bc54bbabe452591956..98e12313596c58738fc7e3eeaccfde202b91ef2a:/apps/catalogue/models.py?ds=inline
diff --git a/apps/catalogue/models.py b/apps/catalogue/models.py
index b760eccc2..2097e175f 100644
--- a/apps/catalogue/models.py
+++ b/apps/catalogue/models.py
@@ -9,6 +9,7 @@ from django.contrib.auth.models import User
from django.core.files import File
from django.template.loader import render_to_string
from django.utils.safestring import mark_safe
+from django.utils.translation import get_language
from django.core.urlresolvers import reverse
from datetime import datetime
@@ -130,15 +131,18 @@ class Book(models.Model):
return self.title
def short_html(self):
- if len(self._short_html):
- return mark_safe(self._short_html)
+ key = '_short_html_%s' % get_language()
+ short_html = getattr(self, key)
+
+ if len(short_html):
+ return mark_safe(short_html)
else:
tags = self.tags.filter(~Q(category__in=('set', 'theme', 'book')))
tags = [mark_safe(u'%s' % (tag.get_absolute_url(), tag.name)) for tag in tags]
formats = []
if self.html_file:
- formats.append(u'Czytaj online' % reverse('book_text', kwargs={'slug': self.slug}))
+ formats.append(u'%s' % (reverse('book_text', kwargs={'slug': self.slug}), _('Read online')))
if self.pdf_file:
formats.append(u'PDF' % self.pdf_file.url)
if self.odt_file:
@@ -152,15 +156,16 @@ class Book(models.Model):
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}))
+ setattr(self, key, unicode(render_to_string('catalogue/book_short.html',
+ {'book': self, 'tags': tags, 'formats': formats})))
self.save(reset_short_html=False)
- return mark_safe(self._short_html)
+ return mark_safe(getattr(self, key))
def save(self, force_insert=False, force_update=False, reset_short_html=True):
if reset_short_html:
# Reset _short_html during save
- self._short_html = ''
+ for key in filter(lambda x: x.startswith('_short_html'), self.__dict__):
+ self.__setattr__(key, '')
book = super(Book, self).save(force_insert, force_update)
@@ -218,7 +223,7 @@ class Book(models.Model):
book_shelves = []
else:
if not overwrite:
- raise Book.AlreadyExists('Book %s already exists' % book_slug)
+ raise Book.AlreadyExists(_('Book %s already exists') % book_slug)
# Save shelves for this book
book_shelves = list(book.tags.filter(category='set'))
@@ -261,7 +266,7 @@ class Book(models.Model):
child_book.parent_number = n
child_book.save()
except Book.DoesNotExist, e:
- raise Book.DoesNotExist(u'Book with slug = "%s" does not exist.' % slug)
+ raise Book.DoesNotExist(_('Book with slug = "%s" does not exist.') % slug)
book_descendants = list(book.children.all())
while len(book_descendants) > 0:
@@ -338,16 +343,18 @@ class Fragment(models.Model):
tags = managers.TagDescriptor(Tag)
def short_html(self):
- if len(self._short_html):
- return mark_safe(self._short_html)
+ key = '_short_html_%s' % get_language()
+ short_html = getattr(self, key)
+ if len(short_html):
+ return mark_safe(short_html)
else:
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',
- {'fragment': self, 'book': self.book, 'book_authors': book_authors}))
+ setattr(self, key, unicode(render_to_string('catalogue/fragment_short.html',
+ {'fragment': self, 'book': self.book, 'book_authors': book_authors})))
self.save()
- return mark_safe(self._short_html)
+ return mark_safe(getattr(self, key))
def get_absolute_url(self):
return '%s#m%s' % (reverse('book_text', kwargs={'slug': self.book.slug}), self.anchor)
@@ -383,5 +390,4 @@ class BookStub(models.Model):
class Meta:
ordering = ('title',)
verbose_name = _('book stub')
- verbose_name_plural = _('book stubs')
-
+ verbose_name_plural = _('book stubs')
\ No newline at end of file