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
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'<a href="%s">%s</a>' % (tag.get_absolute_url(), tag.name)) for tag in tags]
formats = []
if self.html_file:
- formats.append(u'<a href="%s">Czytaj online</a>' % reverse('book_text', kwargs={'slug': self.slug}))
+ formats.append(u'<a href="%s">%s</a>' % (reverse('book_text', kwargs={'slug': self.slug}), _('Read online')))
if self.pdf_file:
formats.append(u'<a href="%s">PDF</a>' % self.pdf_file.url)
if self.odt_file:
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)
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'))
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:
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'<a href="%s">%s</a>' % (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)
class Meta:
ordering = ('title',)
verbose_name = _('book stub')
- verbose_name_plural = _('book stubs')
-
+ verbose_name_plural = _('book stubs')
\ No newline at end of file