X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/276656dcc680e1a35103d310dea046152ddc3785..6ba1659e33c6aa1de178b5ab9a7a4cf27385e7a4:/apps/catalogue/models.py diff --git a/apps/catalogue/models.py b/apps/catalogue/models.py index ebecc36b4..9f26ae5b2 100644 --- a/apps/catalogue/models.py +++ b/apps/catalogue/models.py @@ -610,8 +610,9 @@ class Book(models.Model): text = fragment.to_string() short_text = '' - if (len(MarkupString(text)) > 240): - short_text = unicode(MarkupString(text)[:160]) + markup = MarkupString(text) + if (len(markup) > 240): + short_text = unicode(markup[:160]) new_fragment = Fragment.objects.create(anchor=fragment.id, book=self, text=text, short_text=short_text) @@ -935,6 +936,16 @@ class Book(models.Model): audiences = sorted(set([self._audiences_pl[a] for a in audiences])) return [a[1] for a in audiences] + def choose_fragment(self): + tag = self.book_tag() + fragments = Fragment.tagged.with_any([tag]) + if fragments.exists(): + return fragments.order_by('?')[0] + elif self.parent: + return self.parent.choose_fragment() + else: + return None + def _has_factory(ftype): has = lambda self: bool(getattr(self, "%s_file" % ftype))