X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/6dde47a534420987b2c0e8075b10d2d569ff572f..f6925ca9c2f8061e4a170577df07407990222a26:/catalogue/models.py?ds=sidebyside diff --git a/catalogue/models.py b/catalogue/models.py index d252bbf69..057236dc2 100644 --- a/catalogue/models.py +++ b/catalogue/models.py @@ -10,7 +10,7 @@ from django.utils.safestring import mark_safe from newtagging.models import TagBase from newtagging import managers -from librarian import html +from librarian import html, dcparser TAG_CATEGORIES = ( @@ -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',) @@ -128,7 +128,7 @@ class Book(models.Model): def from_xml_file(xml_file): 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 +159,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 +194,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')