--- /dev/null
+# -*- coding: utf-8 -*-
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
+from django.core.management.base import BaseCommand
+
+from catalogue.models import Book
+
+
+class Command(BaseCommand):
+ def handle(self, *args, **options):
+ for b in Book.objects.order_by('slug'):
+ print b.slug
+ b.load_abstract()
+ b.save()
--- /dev/null
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('catalogue', '0022_auto_20180226_1503'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='book',
+ name='abstract',
+ field=models.TextField(verbose_name='abstract', blank=True),
+ ),
+ ]
import jsonfield
from fnpdjango.storage import BofhFileSystemStorage
from ssify import flush_ssi_includes
+
+from librarian.html import transform_abstrakt
from newtagging import managers
from catalogue import constants
from catalogue.fields import EbookField
common_slug = models.SlugField(_('slug'), max_length=120, db_index=True)
language = models.CharField(_('language code'), max_length=3, db_index=True, default=app_settings.DEFAULT_LANGUAGE)
description = models.TextField(_('description'), blank=True)
+ abstract = models.TextField(_('abstract'), blank=True)
created_at = models.DateTimeField(_('creation date'), auto_now_add=True, db_index=True)
changed_at = models.DateTimeField(_('change date'), auto_now=True, db_index=True)
parent_number = models.IntegerField(_('parent number'), default=0)
ilustr_path = os.path.join(gallery_path, ilustr_src)
urllib.urlretrieve('%s/%s' % (remote_gallery_url, ilustr_src), ilustr_path)
+ def load_abstract(self):
+ abstract = self.wldocument().edoc.getroot().find('.//abstrakt')
+ if abstract is not None:
+ self.abstract = transform_abstrakt(abstract)
+ else:
+ self.abstract = ''
+
@classmethod
def from_xml_file(cls, xml_file, **kwargs):
from django.core.files import File
else:
book.common_slug = book.slug
book.extra_info = book_info.to_dict()
+ book.load_abstract()
book.save()
meta_tags = Tag.tags_from_info(book_info)