X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/6dde47a534420987b2c0e8075b10d2d569ff572f..633b91cf88a2ff369d7d3dbcc8bdc3fd20cc68e9:/catalogue/models.py diff --git a/catalogue/models.py b/catalogue/models.py index d252bbf69..0d3df1603 100644 --- a/catalogue/models.py +++ b/catalogue/models.py @@ -49,7 +49,7 @@ class Tag(TagBase): @permalink def get_absolute_url(self): - return ('catalogue.views.tagged_book_list', [self.slug]) + return ('catalogue.views.tagged_object_list', [self.slug]) class Meta: ordering = ('sort_key',) @@ -129,6 +129,7 @@ class Book(models.Model): from tempfile import NamedTemporaryFile from slughifi import slughifi import dcparser + from markupstring import MarkupString # Read book metadata book_info = dcparser.parse(xml_file) @@ -159,7 +160,11 @@ class Book(models.Model): closed_fragments, open_fragments = html.extract_fragments(book.html_file.path) book_themes = [] for fragment in closed_fragments.values(): - new_fragment = Fragment(html=fragment.to_string(), anchor=fragment.id, book=book) + text = fragment.to_string() + short_text = '' + if (len(MarkupString(text)) > 240): + short_text = MarkupString(text)[:160] + new_fragment = Fragment(text=text, short_text=short_text, anchor=fragment.id, book=book) theme_names = [s.strip() for s in fragment.themes.split(',')] themes = [] @@ -190,7 +195,8 @@ class Book(models.Model): class Fragment(models.Model): - html = models.TextField() + text = models.TextField() + short_text = models.TextField(editable=False) _short_html = models.TextField(editable=False) anchor = models.IntegerField() book = models.ForeignKey(Book, related_name='fragments')