From: Jan Szejko Date: Wed, 13 Apr 2016 08:17:15 +0000 (+0200) Subject: Merge branch 'dev' X-Git-Url: https://git.mdrn.pl/wolnelektury.git/commitdiff_plain/9a938c8b406ce05e3bca4a5a483d473ece9e17b0?hp=a23b57cb16a06a83d745961503daac8c4d99b526 Merge branch 'dev' Conflicts: src/api/management/commands/mobileinit.py src/catalogue/templates/catalogue/inline_tag_list.html src/catalogue/templates/catalogue/plain_list.html src/catalogue/views.py src/wolnelektury/static/scss/main/book_box.scss src/wolnelektury/static/scss/main/header.scss src/wolnelektury/templates/main_page.html src/wolnelektury/templates/superbase.html --- diff --git a/src/ajaxable/locale/de/LC_MESSAGES/django.po b/src/ajaxable/locale/de/LC_MESSAGES/django.po index 09c2bc980..ba01bbe26 100644 --- a/src/ajaxable/locale/de/LC_MESSAGES/django.po +++ b/src/ajaxable/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/ajaxable/locale/en/LC_MESSAGES/django.po b/src/ajaxable/locale/en/LC_MESSAGES/django.po index fad7e9128..e2d51618b 100644 --- a/src/ajaxable/locale/en/LC_MESSAGES/django.po +++ b/src/ajaxable/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/ajaxable/locale/es/LC_MESSAGES/django.po b/src/ajaxable/locale/es/LC_MESSAGES/django.po index 09c2bc980..ba01bbe26 100644 --- a/src/ajaxable/locale/es/LC_MESSAGES/django.po +++ b/src/ajaxable/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/ajaxable/locale/fr/LC_MESSAGES/django.po b/src/ajaxable/locale/fr/LC_MESSAGES/django.po index ac588961f..3a39004c4 100644 --- a/src/ajaxable/locale/fr/LC_MESSAGES/django.po +++ b/src/ajaxable/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/ajaxable/locale/it/LC_MESSAGES/django.po b/src/ajaxable/locale/it/LC_MESSAGES/django.po index 09c2bc980..ba01bbe26 100644 --- a/src/ajaxable/locale/it/LC_MESSAGES/django.po +++ b/src/ajaxable/locale/it/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/ajaxable/locale/lt/LC_MESSAGES/django.po b/src/ajaxable/locale/lt/LC_MESSAGES/django.po index d33012791..57ef90fd7 100644 --- a/src/ajaxable/locale/lt/LC_MESSAGES/django.po +++ b/src/ajaxable/locale/lt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/ajaxable/locale/pl/LC_MESSAGES/django.po b/src/ajaxable/locale/pl/LC_MESSAGES/django.po index c1aa66d56..115699f0a 100644 --- a/src/ajaxable/locale/pl/LC_MESSAGES/django.po +++ b/src/ajaxable/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: 2012-01-27 16:36+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: LANGUAGE \n" diff --git a/src/ajaxable/locale/ru/LC_MESSAGES/django.po b/src/ajaxable/locale/ru/LC_MESSAGES/django.po index dad6de395..fb5d2187b 100644 --- a/src/ajaxable/locale/ru/LC_MESSAGES/django.po +++ b/src/ajaxable/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/ajaxable/locale/uk/LC_MESSAGES/django.po b/src/ajaxable/locale/uk/LC_MESSAGES/django.po index dad6de395..fb5d2187b 100644 --- a/src/ajaxable/locale/uk/LC_MESSAGES/django.po +++ b/src/ajaxable/locale/uk/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/api/emitters.py b/src/api/emitters.py index 40cc71787..36babb2bf 100644 --- a/src/api/emitters.py +++ b/src/api/emitters.py @@ -9,6 +9,7 @@ When outputting a queryset of selected models, instead of returning XML or JSON stanzas, SSI include statements are returned. """ +from django.conf import settings from django.core.urlresolvers import reverse from django.db.models.query import QuerySet from piston.emitters import Emitter, XMLEmitter, JSONEmitter @@ -41,10 +42,11 @@ class SsiQS(object): class SsiEmitterMixin(object): def construct(self): - if isinstance(self.data, QuerySet) and self.data.model in (Book, Fragment, Tag): + ssify_api = getattr(settings, 'SSIFY_API', True) + if ssify_api and isinstance(self.data, QuerySet) and self.data.model in (Book, Fragment, Tag): return SsiQS(self.data) else: - return super(SsiEmitterMixin, self).construct() # WTF + return super(SsiEmitterMixin, self).construct() class SsiJsonEmitter(SsiEmitterMixin, JSONEmitter): diff --git a/src/api/handlers.py b/src/api/handlers.py index 0dc9cd6d6..b81afdaf5 100644 --- a/src/api/handlers.py +++ b/src/api/handlers.py @@ -206,7 +206,9 @@ class AnonymousBooksHandler(AnonymousBaseHandler, BookDetails): if daisy: books = books.filter(media__type='daisy').distinct() - if books.exists(): + books = books.only('slug', 'title', 'cover') + + if books: return books else: return rc.NOT_FOUND @@ -249,7 +251,7 @@ def _tags_getter(category): def _tag_getter(category): @classmethod def get_tag(cls, book): - return ', '.join(tag.name for tag in book.tags.filter(category=category)) + return ', '.join(book.tags.filter(category=category).values_list('name', flat=True)) return get_tag diff --git a/src/api/locale/de/LC_MESSAGES/django.po b/src/api/locale/de/LC_MESSAGES/django.po index ad00a1baa..7ec972870 100644 --- a/src/api/locale/de/LC_MESSAGES/django.po +++ b/src/api/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/api/locale/en/LC_MESSAGES/django.po b/src/api/locale/en/LC_MESSAGES/django.po index 80c9ba374..20823089e 100644 --- a/src/api/locale/en/LC_MESSAGES/django.po +++ b/src/api/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/api/locale/es/LC_MESSAGES/django.po b/src/api/locale/es/LC_MESSAGES/django.po index ad00a1baa..7ec972870 100644 --- a/src/api/locale/es/LC_MESSAGES/django.po +++ b/src/api/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/api/locale/fr/LC_MESSAGES/django.po b/src/api/locale/fr/LC_MESSAGES/django.po index dcfe86b5b..3c659daa0 100644 --- a/src/api/locale/fr/LC_MESSAGES/django.po +++ b/src/api/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/api/locale/it/LC_MESSAGES/django.po b/src/api/locale/it/LC_MESSAGES/django.po index ad00a1baa..7ec972870 100644 --- a/src/api/locale/it/LC_MESSAGES/django.po +++ b/src/api/locale/it/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/api/locale/lt/LC_MESSAGES/django.po b/src/api/locale/lt/LC_MESSAGES/django.po index e99e0a329..01c11bcfe 100644 --- a/src/api/locale/lt/LC_MESSAGES/django.po +++ b/src/api/locale/lt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/api/locale/pl/LC_MESSAGES/django.po b/src/api/locale/pl/LC_MESSAGES/django.po index a957909f6..e6b4840c7 100644 --- a/src/api/locale/pl/LC_MESSAGES/django.po +++ b/src/api/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: 2013-06-14 11:45+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: LANGUAGE \n" diff --git a/src/api/locale/ru/LC_MESSAGES/django.po b/src/api/locale/ru/LC_MESSAGES/django.po index f18808ee0..b2456767d 100644 --- a/src/api/locale/ru/LC_MESSAGES/django.po +++ b/src/api/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/api/locale/uk/LC_MESSAGES/django.po b/src/api/locale/uk/LC_MESSAGES/django.po index f18808ee0..b2456767d 100644 --- a/src/api/locale/uk/LC_MESSAGES/django.po +++ b/src/api/locale/uk/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/api/management/commands/mobileinit.py b/src/api/management/commands/mobileinit.py index ed4d624f9..ccf27bc76 100755 --- a/src/api/management/commands/mobileinit.py +++ b/src/api/management/commands/mobileinit.py @@ -147,7 +147,7 @@ def add_book(db, book): 'parent_number': book.parent_number, 'sort_key': book.sort_key, 'size_str': pretty_size(html_file_size), - 'authors': ", ".join(t.name for t in book.tags.filter(category='author')), + 'authors': book.author_unicode(), }) diff --git a/src/catalogue/feeds.py b/src/catalogue/feeds.py index 2a65c592b..0b7e4d474 100644 --- a/src/catalogue/feeds.py +++ b/src/catalogue/feeds.py @@ -52,8 +52,7 @@ class AudiobookFeed(Feed): return item.name def item_categories(self, item): - return sorted(set(author.name for author in - item.book.tags.filter(category='author').iterator())) + return sorted(item.book.authors().values_list('name', flat=True)) def item_description(self, item): lines = [] diff --git a/src/catalogue/fields.py b/src/catalogue/fields.py index 42612522c..b1242e7e1 100644 --- a/src/catalogue/fields.py +++ b/src/catalogue/fields.py @@ -8,7 +8,7 @@ from django.db import models from django.db.models.fields.files import FieldFile from catalogue import app_settings from catalogue.constants import LANGUAGES_3TO2 -from catalogue.utils import remove_zip, truncate_html_words +from catalogue.utils import remove_zip, truncate_html_words, gallery_path, gallery_url from celery.task import Task, task from celery.utils.log import get_task_logger from waiter.utils import clear_cache @@ -117,7 +117,8 @@ class BuildTxt(BuildEbook): class BuildPdf(BuildEbook): @staticmethod def transform(wldoc, fieldfile): - return wldoc.as_pdf(morefloats=settings.LIBRARIAN_PDF_MOREFLOATS, cover=True) + return wldoc.as_pdf(morefloats=settings.LIBRARIAN_PDF_MOREFLOATS, cover=True, + ilustr_path=gallery_path(wldoc.book_info.url.slug)) def build(self, fieldfile): BuildEbook.build(self, fieldfile) @@ -129,7 +130,15 @@ class BuildPdf(BuildEbook): class BuildEpub(BuildEbook): @staticmethod def transform(wldoc, fieldfile): - return wldoc.as_epub(cover=True) + return wldoc.as_epub(cover=True, ilustr_path=gallery_path(wldoc.book_info.url.slug)) + + +@BuildEbook.register('mobi') +@task(ignore_result=True) +class BuildMobi(BuildEbook): + @staticmethod + def transform(wldoc, fieldfile): + return wldoc.as_mobi(cover=True, ilustr_path=gallery_path(wldoc.book_info.url.slug)) @BuildEbook.register('html') @@ -144,9 +153,7 @@ class BuildHtml(BuildEbook): book = fieldfile.instance - html_output = self.transform( - book.wldocument(parse_dublincore=False), - fieldfile) + html_output = self.transform(book.wldocument(parse_dublincore=False), fieldfile) # Delete old fragments, create from scratch if necessary. book.fragments.all().delete() @@ -210,6 +217,17 @@ class BuildHtml(BuildEbook): return True return False + @staticmethod + def transform(wldoc, fieldfile): + # ugly, but we can't use wldoc.book_info here + from librarian import DCNS + url_elem = wldoc.edoc.getroot().find('.//' + DCNS('identifier.url')) + if url_elem is None: + gallery = '' + else: + gallery = gallery_url(slug=url_elem.text.rsplit('/', 1)[1]) + return wldoc.as_html(options={'gallery': "'%s'" % gallery}) + @BuildEbook.register('cover_thumb') @task(ignore_result=True) diff --git a/src/catalogue/forms.py b/src/catalogue/forms.py index 82a5d1f1a..ea732db58 100644 --- a/src/catalogue/forms.py +++ b/src/catalogue/forms.py @@ -15,6 +15,7 @@ from catalogue.tasks import build_custom_pdf class BookImportForm(forms.Form): book_xml_file = forms.FileField(required=False) book_xml = forms.CharField(required=False) + gallery_url = forms.CharField(required=False) def clean(self): from django.core.files.base import ContentFile @@ -22,13 +23,14 @@ class BookImportForm(forms.Form): if not self.cleaned_data['book_xml_file']: if self.cleaned_data['book_xml']: self.cleaned_data['book_xml_file'] = \ - ContentFile(self.cleaned_data['book_xml'].encode('utf-8')) + ContentFile(self.cleaned_data['book_xml'].encode('utf-8')) else: raise forms.ValidationError(_("Please supply an XML.")) return super(BookImportForm, self).clean() def save(self, commit=True, **kwargs): - return Book.from_xml_file(self.cleaned_data['book_xml_file'], overwrite=True, **kwargs) + return Book.from_xml_file(self.cleaned_data['book_xml_file'], overwrite=True, + remote_gallery_url=self.cleaned_data['gallery_url'], **kwargs) FORMATS = [(f, f.upper()) for f in Book.ebook_formats] diff --git a/src/catalogue/helpers.py b/src/catalogue/helpers.py index f74fad3e3..97c63d08c 100644 --- a/src/catalogue/helpers.py +++ b/src/catalogue/helpers.py @@ -59,7 +59,7 @@ def update_counters(): def count_for_book(book, count_by_combination=None, parent_combinations=None): if not parent_combinations: parent_combinations = set() - tags = sorted(tuple(t.pk for t in book.tags.filter(category__in=('author', 'genre', 'epoch', 'kind')))) + tags = sorted(book.tags.filter(category__in=('author', 'genre', 'epoch', 'kind')).values_list('pk', flat=True)) combs = list(combinations(tags)) for c in combs: if c not in parent_combinations: diff --git a/src/catalogue/locale/de/LC_MESSAGES/django.po b/src/catalogue/locale/de/LC_MESSAGES/django.po index 4d0b2282d..ca80d5e5c 100644 --- a/src/catalogue/locale/de/LC_MESSAGES/django.po +++ b/src/catalogue/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: 2013-04-09 10:38+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: LANGUAGE \n" @@ -101,130 +101,130 @@ msgstr "Sammlungen" msgid "All things" msgstr "Sammlungen" -#: forms.py:27 +#: forms.py:28 msgid "Please supply an XML." msgstr "Bitte stellen Sie die XML bereit." -#: forms.py:45 +#: forms.py:47 msgid "Don't show footnotes" msgstr "Zeige die Fußnoten nicht" -#: forms.py:46 +#: forms.py:48 msgid "Don't disply themes" msgstr "Zeige die Motive nicht " -#: forms.py:47 +#: forms.py:49 msgid "Don't use our custom font" msgstr "Benutze voreingestellte Schrift nicht" -#: forms.py:48 +#: forms.py:50 msgid "Without cover" msgstr "" -#: forms.py:51 +#: forms.py:53 msgid "Leading" msgstr "Zeilenabstand" -#: forms.py:52 +#: forms.py:54 msgid "Normal leading" msgstr "Normaler Zeilenabstand" -#: forms.py:53 +#: forms.py:55 msgid "One and a half leading" msgstr "Zeilenabstand 1,5" -#: forms.py:54 +#: forms.py:56 msgid "Double leading" msgstr "Doppelter Zeilenabstand" -#: forms.py:56 +#: forms.py:58 msgid "Font size" msgstr "Schriftgröße" -#: forms.py:57 +#: forms.py:59 msgid "Default" msgstr "Voreingestellt" -#: forms.py:58 +#: forms.py:60 msgid "Big" msgstr "Groß" -#: forms.py:80 +#: forms.py:82 msgid "Queue is full. Please try again later." msgstr "" -#: models/book.py:45 models/collection.py:14 +#: models/book.py:48 models/collection.py:14 msgid "title" msgstr "Titel" -#: models/book.py:46 models/tag.py:35 +#: models/book.py:49 models/tag.py:35 msgid "sort key" msgstr "Sortierschlüssel" -#: models/book.py:48 +#: models/book.py:51 #, fuzzy #| msgid "Results by authors" msgid "sort key by author" msgstr "Ergebnisse nach Autoren" -#: models/book.py:49 models/book.py:50 models/collection.py:15 +#: models/book.py:52 models/book.py:53 models/collection.py:15 #: models/collection.py:18 models/tag.py:34 msgid "slug" msgstr "Slug" -#: models/book.py:51 +#: models/book.py:54 msgid "language code" msgstr "Sprachenkode" -#: models/book.py:52 models/book.py:173 models/collection.py:16 +#: models/book.py:55 models/book.py:182 models/collection.py:16 #: models/tag.py:38 models/tag.py:156 msgid "description" msgstr "Beschreibung" -#: models/book.py:53 models/book.py:54 models/bookmedia.py:34 models/tag.py:45 +#: models/book.py:56 models/book.py:57 models/bookmedia.py:34 models/tag.py:45 #: models/tag.py:46 msgid "creation date" msgstr "Erstellungsdatum" -#: models/book.py:55 +#: models/book.py:58 msgid "parent number" msgstr "Elternnummer" -#: models/book.py:56 models/bookmedia.py:35 +#: models/book.py:59 models/bookmedia.py:35 msgid "extra information" msgstr "zusätzliche Informationen" -#: models/book.py:62 +#: models/book.py:65 msgid "cover" msgstr "Umschlag" -#: models/book.py:68 +#: models/book.py:71 msgid "cover thumbnail" msgstr "" -#: models/book.py:93 models/collection.py:22 +#: models/book.py:96 models/collection.py:22 msgid "book" msgstr "Buch" -#: models/book.py:94 +#: models/book.py:97 msgid "books" msgstr "Bücher" -#: models/book.py:269 +#: models/book.py:292 #, python-format msgid "Book \"%s\" does not exist." msgstr "Buch mit dem Slug = \"%s\" ist nicht vorhanden." -#: models/book.py:282 +#: models/book.py:305 #, python-format msgid "Book %s already exists" msgstr "Buch %s ist bereits vorhanden" -#: models/book.py:529 +#: models/book.py:555 msgid "This work needs modernisation" msgstr "" -#: models/book.py:557 models/bookmedia.py:29 +#: models/book.py:583 models/bookmedia.py:29 #, python-format msgid "%s file" msgstr "%s XML-Datei" @@ -513,7 +513,7 @@ msgid "Infobox" msgstr "Infobox" #: templates/catalogue/book_text.html:56 -#: templates/catalogue/viewer_base.html:53 +#: templates/catalogue/viewer_base.html:54 msgid "Close" msgstr "" @@ -666,7 +666,7 @@ msgstr "Siehe XML-Quelle" msgid "Work's themes " msgstr "Motive des Werkes" -#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:9 +#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:10 msgid "Wolne Lektury" msgstr "Wolne Lektury" @@ -869,7 +869,7 @@ msgstr "in Wikipedia" msgid "in Culture.pl" msgstr "" -#: templates/catalogue/viewer_base.html:55 +#: templates/catalogue/viewer_base.html:56 #, fuzzy #| msgid "Leading" msgid "Loading" diff --git a/src/catalogue/locale/en/LC_MESSAGES/django.po b/src/catalogue/locale/en/LC_MESSAGES/django.po index 5c9c81463..5515d3e90 100644 --- a/src/catalogue/locale/en/LC_MESSAGES/django.po +++ b/src/catalogue/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: 2013-04-09 10:38+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: LANGUAGE \n" @@ -101,130 +101,130 @@ msgstr "collections" msgid "All things" msgstr "collections" -#: forms.py:27 +#: forms.py:28 msgid "Please supply an XML." msgstr "Please supply an XML." -#: forms.py:45 +#: forms.py:47 msgid "Don't show footnotes" msgstr "Don't show footnotes" -#: forms.py:46 +#: forms.py:48 msgid "Don't disply themes" msgstr "Don't display themes" -#: forms.py:47 +#: forms.py:49 msgid "Don't use our custom font" msgstr "Don't use our custom font" -#: forms.py:48 +#: forms.py:50 msgid "Without cover" msgstr "" -#: forms.py:51 +#: forms.py:53 msgid "Leading" msgstr "Leading" -#: forms.py:52 +#: forms.py:54 msgid "Normal leading" msgstr "Normal leading" -#: forms.py:53 +#: forms.py:55 msgid "One and a half leading" msgstr "One and a half leading" -#: forms.py:54 +#: forms.py:56 msgid "Double leading" msgstr "Double leading" -#: forms.py:56 +#: forms.py:58 msgid "Font size" msgstr "Font size" -#: forms.py:57 +#: forms.py:59 msgid "Default" msgstr "Default" -#: forms.py:58 +#: forms.py:60 msgid "Big" msgstr "Big" -#: forms.py:80 +#: forms.py:82 msgid "Queue is full. Please try again later." msgstr "" -#: models/book.py:45 models/collection.py:14 +#: models/book.py:48 models/collection.py:14 msgid "title" msgstr "Title" -#: models/book.py:46 models/tag.py:35 +#: models/book.py:49 models/tag.py:35 msgid "sort key" msgstr "Sort key" -#: models/book.py:48 +#: models/book.py:51 #, fuzzy #| msgid "Results by authors" msgid "sort key by author" msgstr "Results by authors" -#: models/book.py:49 models/book.py:50 models/collection.py:15 +#: models/book.py:52 models/book.py:53 models/collection.py:15 #: models/collection.py:18 models/tag.py:34 msgid "slug" msgstr "Slug" -#: models/book.py:51 +#: models/book.py:54 msgid "language code" msgstr "language code" -#: models/book.py:52 models/book.py:173 models/collection.py:16 +#: models/book.py:55 models/book.py:182 models/collection.py:16 #: models/tag.py:38 models/tag.py:156 msgid "description" msgstr "Description" -#: models/book.py:53 models/book.py:54 models/bookmedia.py:34 models/tag.py:45 +#: models/book.py:56 models/book.py:57 models/bookmedia.py:34 models/tag.py:45 #: models/tag.py:46 msgid "creation date" msgstr "creation date" -#: models/book.py:55 +#: models/book.py:58 msgid "parent number" msgstr "Parent number" -#: models/book.py:56 models/bookmedia.py:35 +#: models/book.py:59 models/bookmedia.py:35 msgid "extra information" msgstr "Additional information" -#: models/book.py:62 +#: models/book.py:65 msgid "cover" msgstr "cover" -#: models/book.py:68 +#: models/book.py:71 msgid "cover thumbnail" msgstr "" -#: models/book.py:93 models/collection.py:22 +#: models/book.py:96 models/collection.py:22 msgid "book" msgstr "book" -#: models/book.py:94 +#: models/book.py:97 msgid "books" msgstr "Books" -#: models/book.py:269 +#: models/book.py:292 #, python-format msgid "Book \"%s\" does not exist." msgstr "Book with stub = \"%s\" does not exist." -#: models/book.py:282 +#: models/book.py:305 #, python-format msgid "Book %s already exists" msgstr "Book %s already exists" -#: models/book.py:529 +#: models/book.py:555 msgid "This work needs modernisation" msgstr "" -#: models/book.py:557 models/bookmedia.py:29 +#: models/book.py:583 models/bookmedia.py:29 #, python-format msgid "%s file" msgstr "%s file" @@ -515,7 +515,7 @@ msgid "Infobox" msgstr "Infobox" #: templates/catalogue/book_text.html:56 -#: templates/catalogue/viewer_base.html:53 +#: templates/catalogue/viewer_base.html:54 msgid "Close" msgstr "" @@ -669,7 +669,7 @@ msgstr "View XML source" msgid "Work's themes " msgstr "Work's themes " -#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:9 +#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:10 msgid "Wolne Lektury" msgstr "Wolne Lektury" @@ -870,7 +870,7 @@ msgstr "in Wikipedia" msgid "in Culture.pl" msgstr "" -#: templates/catalogue/viewer_base.html:55 +#: templates/catalogue/viewer_base.html:56 #, fuzzy #| msgid "Leading" msgid "Loading" diff --git a/src/catalogue/locale/es/LC_MESSAGES/django.po b/src/catalogue/locale/es/LC_MESSAGES/django.po index 5a8e240f2..9658c9ead 100644 --- a/src/catalogue/locale/es/LC_MESSAGES/django.po +++ b/src/catalogue/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: 2013-04-09 10:39+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: LANGUAGE \n" @@ -101,130 +101,130 @@ msgstr "colecciones" msgid "All things" msgstr "colecciones" -#: forms.py:27 +#: forms.py:28 msgid "Please supply an XML." msgstr "Por favor, suministre un XML." -#: forms.py:45 +#: forms.py:47 msgid "Don't show footnotes" msgstr "No mostres notas a pie de página" -#: forms.py:46 +#: forms.py:48 msgid "Don't disply themes" msgstr "No mostres temas" -#: forms.py:47 +#: forms.py:49 msgid "Don't use our custom font" msgstr "No uses nuestro tipo de la fuente de personalización " -#: forms.py:48 +#: forms.py:50 msgid "Without cover" msgstr "" -#: forms.py:51 +#: forms.py:53 msgid "Leading" msgstr "Interlineado" -#: forms.py:52 +#: forms.py:54 msgid "Normal leading" msgstr "Interlineado normal" -#: forms.py:53 +#: forms.py:55 msgid "One and a half leading" msgstr "Interlineado uno y medio" -#: forms.py:54 +#: forms.py:56 msgid "Double leading" msgstr "Interlineado doble" -#: forms.py:56 +#: forms.py:58 msgid "Font size" msgstr "Tamaño de la fuente" -#: forms.py:57 +#: forms.py:59 msgid "Default" msgstr "Valor por defecto" -#: forms.py:58 +#: forms.py:60 msgid "Big" msgstr "Grande" -#: forms.py:80 +#: forms.py:82 msgid "Queue is full. Please try again later." msgstr "" -#: models/book.py:45 models/collection.py:14 +#: models/book.py:48 models/collection.py:14 msgid "title" msgstr "título" -#: models/book.py:46 models/tag.py:35 +#: models/book.py:49 models/tag.py:35 msgid "sort key" msgstr "clave de clasificación" -#: models/book.py:48 +#: models/book.py:51 #, fuzzy #| msgid "Results by authors" msgid "sort key by author" msgstr "Resultados por autor" -#: models/book.py:49 models/book.py:50 models/collection.py:15 +#: models/book.py:52 models/book.py:53 models/collection.py:15 #: models/collection.py:18 models/tag.py:34 msgid "slug" msgstr "slug" -#: models/book.py:51 +#: models/book.py:54 msgid "language code" msgstr "código de idioma" -#: models/book.py:52 models/book.py:173 models/collection.py:16 +#: models/book.py:55 models/book.py:182 models/collection.py:16 #: models/tag.py:38 models/tag.py:156 msgid "description" msgstr "descripción" -#: models/book.py:53 models/book.py:54 models/bookmedia.py:34 models/tag.py:45 +#: models/book.py:56 models/book.py:57 models/bookmedia.py:34 models/tag.py:45 #: models/tag.py:46 msgid "creation date" msgstr "fecha de creación" -#: models/book.py:55 +#: models/book.py:58 msgid "parent number" msgstr "cifra matriz" -#: models/book.py:56 models/bookmedia.py:35 +#: models/book.py:59 models/bookmedia.py:35 msgid "extra information" msgstr "información adicional" -#: models/book.py:62 +#: models/book.py:65 msgid "cover" msgstr "tapa" -#: models/book.py:68 +#: models/book.py:71 msgid "cover thumbnail" msgstr "" -#: models/book.py:93 models/collection.py:22 +#: models/book.py:96 models/collection.py:22 msgid "book" msgstr "libro" -#: models/book.py:94 +#: models/book.py:97 msgid "books" msgstr "libros" -#: models/book.py:269 +#: models/book.py:292 #, fuzzy, python-format msgid "Book \"%s\" does not exist." msgstr "Libro con slug = \"%s\" no existe." -#: models/book.py:282 +#: models/book.py:305 #, python-format msgid "Book %s already exists" msgstr "Libro %s ya existe" -#: models/book.py:529 +#: models/book.py:555 msgid "This work needs modernisation" msgstr "" -#: models/book.py:557 models/bookmedia.py:29 +#: models/book.py:583 models/bookmedia.py:29 #, python-format msgid "%s file" msgstr "%s archivo" @@ -521,7 +521,7 @@ msgid "Infobox" msgstr "Infobox" #: templates/catalogue/book_text.html:56 -#: templates/catalogue/viewer_base.html:53 +#: templates/catalogue/viewer_base.html:54 msgid "Close" msgstr "" @@ -676,7 +676,7 @@ msgstr "Ver código fuente XML" msgid "Work's themes " msgstr "Temas de las obras" -#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:9 +#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:10 msgid "Wolne Lektury" msgstr "Wolne Lektury" @@ -879,7 +879,7 @@ msgstr "en Wikipedia" msgid "in Culture.pl" msgstr "" -#: templates/catalogue/viewer_base.html:55 +#: templates/catalogue/viewer_base.html:56 #, fuzzy #| msgid "Leading" msgid "Loading" diff --git a/src/catalogue/locale/fr/LC_MESSAGES/django.po b/src/catalogue/locale/fr/LC_MESSAGES/django.po index 0635404b2..c181fff54 100644 --- a/src/catalogue/locale/fr/LC_MESSAGES/django.po +++ b/src/catalogue/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: 2013-04-09 10:38+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: LANGUAGE \n" @@ -100,130 +100,130 @@ msgstr "collections" msgid "All things" msgstr "collections" -#: forms.py:27 +#: forms.py:28 msgid "Please supply an XML." msgstr "Fournissez un XML, s'il vous plaît." -#: forms.py:45 +#: forms.py:47 msgid "Don't show footnotes" msgstr "Ne montre pas d'annotations" -#: forms.py:46 +#: forms.py:48 msgid "Don't disply themes" msgstr "N'affiche pas de thèmes" -#: forms.py:47 +#: forms.py:49 msgid "Don't use our custom font" msgstr "N'utilise pas notre caractère usuel" -#: forms.py:48 +#: forms.py:50 msgid "Without cover" msgstr "" -#: forms.py:51 +#: forms.py:53 msgid "Leading" msgstr "Interligne" -#: forms.py:52 +#: forms.py:54 msgid "Normal leading" msgstr "Interligne normal" -#: forms.py:53 +#: forms.py:55 msgid "One and a half leading" msgstr "Interligne et demi" -#: forms.py:54 +#: forms.py:56 msgid "Double leading" msgstr "Interligne double" -#: forms.py:56 +#: forms.py:58 msgid "Font size" msgstr "Taille des caractères" -#: forms.py:57 +#: forms.py:59 msgid "Default" msgstr "Implicite" -#: forms.py:58 +#: forms.py:60 msgid "Big" msgstr "Grand(e)(s)" -#: forms.py:80 +#: forms.py:82 msgid "Queue is full. Please try again later." msgstr "" -#: models/book.py:45 models/collection.py:14 +#: models/book.py:48 models/collection.py:14 msgid "title" msgstr "titre" -#: models/book.py:46 models/tag.py:35 +#: models/book.py:49 models/tag.py:35 msgid "sort key" msgstr "critère de tri" -#: models/book.py:48 +#: models/book.py:51 #, fuzzy #| msgid "Results by authors" msgid "sort key by author" msgstr "Résultats par l'auteur" -#: models/book.py:49 models/book.py:50 models/collection.py:15 +#: models/book.py:52 models/book.py:53 models/collection.py:15 #: models/collection.py:18 models/tag.py:34 msgid "slug" msgstr "ébauche" -#: models/book.py:51 +#: models/book.py:54 msgid "language code" msgstr "code de langue" -#: models/book.py:52 models/book.py:173 models/collection.py:16 +#: models/book.py:55 models/book.py:182 models/collection.py:16 #: models/tag.py:38 models/tag.py:156 msgid "description" msgstr "description" -#: models/book.py:53 models/book.py:54 models/bookmedia.py:34 models/tag.py:45 +#: models/book.py:56 models/book.py:57 models/bookmedia.py:34 models/tag.py:45 #: models/tag.py:46 msgid "creation date" msgstr "date de création" -#: models/book.py:55 +#: models/book.py:58 msgid "parent number" msgstr "nombre de parent" -#: models/book.py:56 models/bookmedia.py:35 +#: models/book.py:59 models/bookmedia.py:35 msgid "extra information" msgstr "information supplémentaire" -#: models/book.py:62 +#: models/book.py:65 msgid "cover" msgstr "couverture" -#: models/book.py:68 +#: models/book.py:71 msgid "cover thumbnail" msgstr "" -#: models/book.py:93 models/collection.py:22 +#: models/book.py:96 models/collection.py:22 msgid "book" msgstr "livre" -#: models/book.py:94 +#: models/book.py:97 msgid "books" msgstr "livres" -#: models/book.py:269 +#: models/book.py:292 #, python-format msgid "Book \"%s\" does not exist." msgstr "Livre \"%s\" n'existe pas." -#: models/book.py:282 +#: models/book.py:305 #, python-format msgid "Book %s already exists" msgstr "Livre %s existe déjà" -#: models/book.py:529 +#: models/book.py:555 msgid "This work needs modernisation" msgstr "" -#: models/book.py:557 models/bookmedia.py:29 +#: models/book.py:583 models/bookmedia.py:29 #, python-format msgid "%s file" msgstr "fichier %s" @@ -514,7 +514,7 @@ msgid "Infobox" msgstr "Infobox" #: templates/catalogue/book_text.html:56 -#: templates/catalogue/viewer_base.html:53 +#: templates/catalogue/viewer_base.html:54 msgid "Close" msgstr "" @@ -667,7 +667,7 @@ msgstr "Voir source XML" msgid "Work's themes " msgstr "Les thèmes de l'oeuvre" -#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:9 +#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:10 msgid "Wolne Lektury" msgstr "Wolne Lektury (Lectures Libres)" @@ -872,7 +872,7 @@ msgstr "sur Wikipédia" msgid "in Culture.pl" msgstr "" -#: templates/catalogue/viewer_base.html:55 +#: templates/catalogue/viewer_base.html:56 #, fuzzy #| msgid "Leading" msgid "Loading" diff --git a/src/catalogue/locale/it/LC_MESSAGES/django.po b/src/catalogue/locale/it/LC_MESSAGES/django.po index b6d093a6e..75d52fb58 100644 --- a/src/catalogue/locale/it/LC_MESSAGES/django.po +++ b/src/catalogue/locale/it/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: 2013-04-09 10:39+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: LANGUAGE \n" @@ -101,130 +101,130 @@ msgstr " raccolte" msgid "All things" msgstr " raccolte" -#: forms.py:27 +#: forms.py:28 msgid "Please supply an XML." msgstr "Si prega di fornire un XML." -#: forms.py:45 +#: forms.py:47 msgid "Don't show footnotes" msgstr "Non mostrare le note" -#: forms.py:46 +#: forms.py:48 msgid "Don't disply themes" msgstr "Non visualizzare i temi" -#: forms.py:47 +#: forms.py:49 msgid "Don't use our custom font" msgstr "Non utilizzare il nostro font personalizzato" -#: forms.py:48 +#: forms.py:50 msgid "Without cover" msgstr "" -#: forms.py:51 +#: forms.py:53 msgid "Leading" msgstr "Interlinea" -#: forms.py:52 +#: forms.py:54 msgid "Normal leading" msgstr "Interlinea normale" -#: forms.py:53 +#: forms.py:55 msgid "One and a half leading" msgstr " Interlinea 1,5" -#: forms.py:54 +#: forms.py:56 msgid "Double leading" msgstr "Interlinea doppia" -#: forms.py:56 +#: forms.py:58 msgid "Font size" msgstr "Grandezza del carattere" -#: forms.py:57 +#: forms.py:59 msgid "Default" msgstr "Predefinito" -#: forms.py:58 +#: forms.py:60 msgid "Big" msgstr "Grande" -#: forms.py:80 +#: forms.py:82 msgid "Queue is full. Please try again later." msgstr "" -#: models/book.py:45 models/collection.py:14 +#: models/book.py:48 models/collection.py:14 msgid "title" msgstr "titolo" -#: models/book.py:46 models/tag.py:35 +#: models/book.py:49 models/tag.py:35 msgid "sort key" msgstr "chiave di ordinamento" -#: models/book.py:48 +#: models/book.py:51 #, fuzzy #| msgid "Results by authors" msgid "sort key by author" msgstr "Risultati per autore" -#: models/book.py:49 models/book.py:50 models/collection.py:15 +#: models/book.py:52 models/book.py:53 models/collection.py:15 #: models/collection.py:18 models/tag.py:34 msgid "slug" msgstr "slug" -#: models/book.py:51 +#: models/book.py:54 msgid "language code" msgstr "codice della lingua" -#: models/book.py:52 models/book.py:173 models/collection.py:16 +#: models/book.py:55 models/book.py:182 models/collection.py:16 #: models/tag.py:38 models/tag.py:156 msgid "description" msgstr "descrizione" -#: models/book.py:53 models/book.py:54 models/bookmedia.py:34 models/tag.py:45 +#: models/book.py:56 models/book.py:57 models/bookmedia.py:34 models/tag.py:45 #: models/tag.py:46 msgid "creation date" msgstr "data di creazione" -#: models/book.py:55 +#: models/book.py:58 msgid "parent number" msgstr "numero del genitore" -#: models/book.py:56 models/bookmedia.py:35 +#: models/book.py:59 models/bookmedia.py:35 msgid "extra information" msgstr " ulteriori informazioni" -#: models/book.py:62 +#: models/book.py:65 msgid "cover" msgstr "copertina" -#: models/book.py:68 +#: models/book.py:71 msgid "cover thumbnail" msgstr "" -#: models/book.py:93 models/collection.py:22 +#: models/book.py:96 models/collection.py:22 msgid "book" msgstr "libro" -#: models/book.py:94 +#: models/book.py:97 msgid "books" msgstr "Libri" -#: models/book.py:269 +#: models/book.py:292 #, python-format msgid "Book \"%s\" does not exist." msgstr "Il libro \"%s\" non esiste." -#: models/book.py:282 +#: models/book.py:305 #, python-format msgid "Book %s already exists" msgstr "Il libro %s esiste già" -#: models/book.py:529 +#: models/book.py:555 msgid "This work needs modernisation" msgstr "" -#: models/book.py:557 models/bookmedia.py:29 +#: models/book.py:583 models/bookmedia.py:29 #, python-format msgid "%s file" msgstr "i %s di file" @@ -517,7 +517,7 @@ msgid "Infobox" msgstr "Infobox" #: templates/catalogue/book_text.html:56 -#: templates/catalogue/viewer_base.html:53 +#: templates/catalogue/viewer_base.html:54 msgid "Close" msgstr "" @@ -672,7 +672,7 @@ msgstr "Visualizza la fonte XML" msgid "Work's themes " msgstr "Temi dell'opera" -#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:9 +#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:10 msgid "Wolne Lektury" msgstr "Wolne Lektury" @@ -874,7 +874,7 @@ msgstr "su Wikipedia" msgid "in Culture.pl" msgstr "" -#: templates/catalogue/viewer_base.html:55 +#: templates/catalogue/viewer_base.html:56 #, fuzzy #| msgid "Leading" msgid "Loading" diff --git a/src/catalogue/locale/lt/LC_MESSAGES/django.po b/src/catalogue/locale/lt/LC_MESSAGES/django.po index 553d09ff3..c101dc47c 100644 --- a/src/catalogue/locale/lt/LC_MESSAGES/django.po +++ b/src/catalogue/locale/lt/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: 2013-04-09 10:40+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: LANGUAGE \n" @@ -101,131 +101,131 @@ msgstr "kolekcijos" msgid "All things" msgstr "kolekcijos" -#: forms.py:27 +#: forms.py:28 msgid "Please supply an XML." msgstr "Prašome pateikti XML." -#: forms.py:45 +#: forms.py:47 msgid "Don't show footnotes" msgstr "Nerodyti išnašų" -#: forms.py:46 +#: forms.py:48 msgid "Don't disply themes" msgstr "Nerodyti motyvų" -#: forms.py:47 +#: forms.py:49 msgid "Don't use our custom font" msgstr "Nenaudoti derinčių šriftų" -#: forms.py:48 +#: forms.py:50 msgid "Without cover" msgstr "" -#: forms.py:51 +#: forms.py:53 msgid "Leading" msgstr "eilučių intervalas" -#: forms.py:52 +#: forms.py:54 msgid "Normal leading" msgstr "Normalus intervalas" -#: forms.py:53 +#: forms.py:55 msgid "One and a half leading" msgstr "Pusantro intervalo" -#: forms.py:54 +#: forms.py:56 msgid "Double leading" msgstr "Dvigubasis intervalas" -#: forms.py:56 +#: forms.py:58 msgid "Font size" msgstr "Šrifto dydis" -#: forms.py:57 +#: forms.py:59 msgid "Default" msgstr "Numatytasis " -#: forms.py:58 +#: forms.py:60 msgid "Big" msgstr "Didelis" -#: forms.py:80 +#: forms.py:82 msgid "Queue is full. Please try again later." msgstr "" -#: models/book.py:45 models/collection.py:14 +#: models/book.py:48 models/collection.py:14 msgid "title" msgstr "pavadinimas" -#: models/book.py:46 models/tag.py:35 +#: models/book.py:49 models/tag.py:35 msgid "sort key" msgstr "rikiavimo raktas" -#: models/book.py:48 +#: models/book.py:51 #, fuzzy #| msgid "Results by authors" msgid "sort key by author" msgstr "Rezultatai pagal autorius" -#: models/book.py:49 models/book.py:50 models/collection.py:15 +#: models/book.py:52 models/book.py:53 models/collection.py:15 #: models/collection.py:18 models/tag.py:34 msgid "slug" msgstr "slug" -#: models/book.py:51 +#: models/book.py:54 msgid "language code" msgstr "kalbos kodas" -#: models/book.py:52 models/book.py:173 models/collection.py:16 +#: models/book.py:55 models/book.py:182 models/collection.py:16 #: models/tag.py:38 models/tag.py:156 msgid "description" msgstr "aprašymas" -#: models/book.py:53 models/book.py:54 models/bookmedia.py:34 models/tag.py:45 +#: models/book.py:56 models/book.py:57 models/bookmedia.py:34 models/tag.py:45 #: models/tag.py:46 msgid "creation date" msgstr "sukūrimo data" # sprawdz -#: models/book.py:55 +#: models/book.py:58 msgid "parent number" msgstr "pirminis numeris" -#: models/book.py:56 models/bookmedia.py:35 +#: models/book.py:59 models/bookmedia.py:35 msgid "extra information" msgstr "papildomos informacijos" -#: models/book.py:62 +#: models/book.py:65 msgid "cover" msgstr "viršelis" -#: models/book.py:68 +#: models/book.py:71 msgid "cover thumbnail" msgstr "" -#: models/book.py:93 models/collection.py:22 +#: models/book.py:96 models/collection.py:22 msgid "book" msgstr "knyga" -#: models/book.py:94 +#: models/book.py:97 msgid "books" msgstr "knygos" -#: models/book.py:269 +#: models/book.py:292 #, python-format msgid "Book \"%s\" does not exist." msgstr "Knyga \"%s\" neegzistuoja." -#: models/book.py:282 +#: models/book.py:305 #, python-format msgid "Book %s already exists" msgstr "Knyga %s jau egzistuoja" -#: models/book.py:529 +#: models/book.py:555 msgid "This work needs modernisation" msgstr "" -#: models/book.py:557 models/bookmedia.py:29 +#: models/book.py:583 models/bookmedia.py:29 #, python-format msgid "%s file" msgstr "%s failas " @@ -517,7 +517,7 @@ msgid "Infobox" msgstr "Infobox" #: templates/catalogue/book_text.html:56 -#: templates/catalogue/viewer_base.html:53 +#: templates/catalogue/viewer_base.html:54 msgid "Close" msgstr "" @@ -673,7 +673,7 @@ msgstr "Žiūrėti XML šaltinį" msgid "Work's themes " msgstr "Kūrinio motyvai" -#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:9 +#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:10 msgid "Wolne Lektury" msgstr "Wolne Lektury" @@ -875,7 +875,7 @@ msgstr "Vikipedijoje" msgid "in Culture.pl" msgstr "" -#: templates/catalogue/viewer_base.html:55 +#: templates/catalogue/viewer_base.html:56 #, fuzzy #| msgid "Leading" msgid "Loading" diff --git a/src/catalogue/locale/pl/LC_MESSAGES/django.po b/src/catalogue/locale/pl/LC_MESSAGES/django.po index c96290a0b..398b3a372 100644 --- a/src/catalogue/locale/pl/LC_MESSAGES/django.po +++ b/src/catalogue/locale/pl/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: WolneLektury\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: 2015-12-31 16:45+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: Fundacja Nowoczesna Polska \n" "Language-Team: LANGUAGE \n" @@ -101,130 +101,130 @@ msgstr "сборы" msgid "All things" msgstr "сборы" -#: forms.py:27 +#: forms.py:28 msgid "Please supply an XML." msgstr "Укажите, пожалуйста, XML." -#: forms.py:45 +#: forms.py:47 msgid "Don't show footnotes" msgstr "Не показывать сноски" -#: forms.py:46 +#: forms.py:48 msgid "Don't disply themes" msgstr "Не показывать темы" -#: forms.py:47 +#: forms.py:49 msgid "Don't use our custom font" msgstr "Не используйте наш специальный шрифт" -#: forms.py:48 +#: forms.py:50 msgid "Without cover" msgstr "" -#: forms.py:51 +#: forms.py:53 msgid "Leading" msgstr "Ведение" -#: forms.py:52 +#: forms.py:54 msgid "Normal leading" msgstr "Нормальное ведение" -#: forms.py:53 +#: forms.py:55 msgid "One and a half leading" msgstr "1,5 ведения" -#: forms.py:54 +#: forms.py:56 msgid "Double leading" msgstr "Двойное ведение" -#: forms.py:56 +#: forms.py:58 msgid "Font size" msgstr "Размер шрифта" -#: forms.py:57 +#: forms.py:59 msgid "Default" msgstr "Умолчание" -#: forms.py:58 +#: forms.py:60 msgid "Big" msgstr "Большой" -#: forms.py:80 +#: forms.py:82 msgid "Queue is full. Please try again later." msgstr "" -#: models/book.py:45 models/collection.py:14 +#: models/book.py:48 models/collection.py:14 msgid "title" msgstr "заглавие" -#: models/book.py:46 models/tag.py:35 +#: models/book.py:49 models/tag.py:35 msgid "sort key" msgstr "ключ сортировки " -#: models/book.py:48 +#: models/book.py:51 #, fuzzy #| msgid "Results by authors" msgid "sort key by author" msgstr "Результаты по авторам" -#: models/book.py:49 models/book.py:50 models/collection.py:15 +#: models/book.py:52 models/book.py:53 models/collection.py:15 #: models/collection.py:18 models/tag.py:34 msgid "slug" msgstr "slug" -#: models/book.py:51 +#: models/book.py:54 msgid "language code" msgstr "код языка" -#: models/book.py:52 models/book.py:173 models/collection.py:16 +#: models/book.py:55 models/book.py:182 models/collection.py:16 #: models/tag.py:38 models/tag.py:156 msgid "description" msgstr "описание" -#: models/book.py:53 models/book.py:54 models/bookmedia.py:34 models/tag.py:45 +#: models/book.py:56 models/book.py:57 models/bookmedia.py:34 models/tag.py:45 #: models/tag.py:46 msgid "creation date" msgstr "дата создания" -#: models/book.py:55 +#: models/book.py:58 msgid "parent number" msgstr "номер родителя" -#: models/book.py:56 models/bookmedia.py:35 +#: models/book.py:59 models/bookmedia.py:35 msgid "extra information" msgstr "дополнительная информация" -#: models/book.py:62 +#: models/book.py:65 msgid "cover" msgstr "обложка" -#: models/book.py:68 +#: models/book.py:71 msgid "cover thumbnail" msgstr "" -#: models/book.py:93 models/collection.py:22 +#: models/book.py:96 models/collection.py:22 msgid "book" msgstr "книга" -#: models/book.py:94 +#: models/book.py:97 msgid "books" msgstr "книги" -#: models/book.py:269 +#: models/book.py:292 #, fuzzy, python-format msgid "Book \"%s\" does not exist." msgstr "Книга со slug = \"%s\" не существует." -#: models/book.py:282 +#: models/book.py:305 #, python-format msgid "Book %s already exists" msgstr "Книга %s уже существует" -#: models/book.py:529 +#: models/book.py:555 msgid "This work needs modernisation" msgstr "" -#: models/book.py:557 models/bookmedia.py:29 +#: models/book.py:583 models/bookmedia.py:29 #, fuzzy, python-format msgid "%s file" msgstr "XML файл" @@ -519,7 +519,7 @@ msgid "Infobox" msgstr "Инфобокс" #: templates/catalogue/book_text.html:56 -#: templates/catalogue/viewer_base.html:53 +#: templates/catalogue/viewer_base.html:54 msgid "Close" msgstr "" @@ -674,7 +674,7 @@ msgstr "Просмотр XML-источник" msgid "Work's themes " msgstr "Темы труда" -#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:9 +#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:10 msgid "Wolne Lektury" msgstr "на WolneLektury.pl" @@ -876,7 +876,7 @@ msgstr "в Википедии" msgid "in Culture.pl" msgstr "" -#: templates/catalogue/viewer_base.html:55 +#: templates/catalogue/viewer_base.html:56 #, fuzzy #| msgid "Leading" msgid "Loading" diff --git a/src/catalogue/locale/uk/LC_MESSAGES/django.po b/src/catalogue/locale/uk/LC_MESSAGES/django.po index 1f3fc38d5..377ec2873 100644 --- a/src/catalogue/locale/uk/LC_MESSAGES/django.po +++ b/src/catalogue/locale/uk/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-01 09:35+0100\n" +"POT-Creation-Date: 2016-03-30 13:22+0200\n" "PO-Revision-Date: 2013-04-09 10:40+0100\n" "Last-Translator: Radek Czajka \n" "Language-Team: LANGUAGE \n" @@ -100,130 +100,130 @@ msgstr "колекції" msgid "All things" msgstr "колекції" -#: forms.py:27 +#: forms.py:28 msgid "Please supply an XML." msgstr "Введіть будь ласка XML." -#: forms.py:45 +#: forms.py:47 msgid "Don't show footnotes" msgstr "Сховати примітки" -#: forms.py:46 +#: forms.py:48 msgid "Don't disply themes" msgstr "Сховати теми" -#: forms.py:47 +#: forms.py:49 msgid "Don't use our custom font" msgstr "Не використовувати нашого настроюваного шрифту" -#: forms.py:48 +#: forms.py:50 msgid "Without cover" msgstr "" -#: forms.py:51 +#: forms.py:53 msgid "Leading" msgstr "Leading" -#: forms.py:52 +#: forms.py:54 msgid "Normal leading" msgstr "Normal leading" -#: forms.py:53 +#: forms.py:55 msgid "One and a half leading" msgstr "One and a half leading" -#: forms.py:54 +#: forms.py:56 msgid "Double leading" msgstr "Double leading" -#: forms.py:56 +#: forms.py:58 msgid "Font size" msgstr "Розмір шрифту" -#: forms.py:57 +#: forms.py:59 msgid "Default" msgstr "За умовчанням" -#: forms.py:58 +#: forms.py:60 msgid "Big" msgstr "Великий" -#: forms.py:80 +#: forms.py:82 msgid "Queue is full. Please try again later." msgstr "" -#: models/book.py:45 models/collection.py:14 +#: models/book.py:48 models/collection.py:14 msgid "title" msgstr "заголовок" -#: models/book.py:46 models/tag.py:35 +#: models/book.py:49 models/tag.py:35 msgid "sort key" msgstr "ключ сортування" -#: models/book.py:48 +#: models/book.py:51 #, fuzzy #| msgid "Results by authors" msgid "sort key by author" msgstr "Результати за авторами" -#: models/book.py:49 models/book.py:50 models/collection.py:15 +#: models/book.py:52 models/book.py:53 models/collection.py:15 #: models/collection.py:18 models/tag.py:34 msgid "slug" msgstr "slug" -#: models/book.py:51 +#: models/book.py:54 msgid "language code" msgstr "мовний код" -#: models/book.py:52 models/book.py:173 models/collection.py:16 +#: models/book.py:55 models/book.py:182 models/collection.py:16 #: models/tag.py:38 models/tag.py:156 msgid "description" msgstr "опис" -#: models/book.py:53 models/book.py:54 models/bookmedia.py:34 models/tag.py:45 +#: models/book.py:56 models/book.py:57 models/bookmedia.py:34 models/tag.py:45 #: models/tag.py:46 msgid "creation date" msgstr "дата створення" -#: models/book.py:55 +#: models/book.py:58 msgid "parent number" msgstr "номер батька" -#: models/book.py:56 models/bookmedia.py:35 +#: models/book.py:59 models/bookmedia.py:35 msgid "extra information" msgstr "додаткова інформація" -#: models/book.py:62 +#: models/book.py:65 msgid "cover" msgstr "обкладинка" -#: models/book.py:68 +#: models/book.py:71 msgid "cover thumbnail" msgstr "" -#: models/book.py:93 models/collection.py:22 +#: models/book.py:96 models/collection.py:22 msgid "book" msgstr "книжка" -#: models/book.py:94 +#: models/book.py:97 msgid "books" msgstr "книжки" -#: models/book.py:269 +#: models/book.py:292 #, python-format msgid "Book \"%s\" does not exist." msgstr "Книжка \"%s\" не існує." -#: models/book.py:282 +#: models/book.py:305 #, python-format msgid "Book %s already exists" msgstr "Книжка %s вже існує" -#: models/book.py:529 +#: models/book.py:555 msgid "This work needs modernisation" msgstr "" -#: models/book.py:557 models/bookmedia.py:29 +#: models/book.py:583 models/bookmedia.py:29 #, python-format msgid "%s file" msgstr "файл %s" @@ -516,7 +516,7 @@ msgid "Infobox" msgstr "Інфобокс" #: templates/catalogue/book_text.html:56 -#: templates/catalogue/viewer_base.html:53 +#: templates/catalogue/viewer_base.html:54 msgid "Close" msgstr "" @@ -669,7 +669,7 @@ msgstr "Дивитись джерело XML" msgid "Work's themes " msgstr "Теми у творі" -#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:9 +#: templates/catalogue/player.html:11 templates/catalogue/viewer_base.html:10 msgid "Wolne Lektury" msgstr "Wolne Lektury" @@ -871,7 +871,7 @@ msgstr "на Вікіпедії" msgid "in Culture.pl" msgstr "" -#: templates/catalogue/viewer_base.html:55 +#: templates/catalogue/viewer_base.html:56 #, fuzzy #| msgid "Leading" msgid "Loading" diff --git a/src/catalogue/models/book.py b/src/catalogue/models/book.py index 676f9c028..0ed97161b 100644 --- a/src/catalogue/models/book.py +++ b/src/catalogue/models/book.py @@ -4,7 +4,9 @@ # from collections import OrderedDict from random import randint +import os.path import re +import urllib from django.conf import settings from django.db import connection, models, transaction from django.db.models import permalink @@ -19,9 +21,10 @@ from newtagging import managers from catalogue import constants from catalogue.fields import EbookField from catalogue.models import Tag, Fragment, BookMedia -from catalogue.utils import create_zip +from catalogue.utils import create_zip, gallery_url, gallery_path from catalogue import app_settings from catalogue import tasks +from wolnelektury.utils import makedirs bofh_storage = BofhFileSystemStorage() @@ -103,8 +106,11 @@ class Book(models.Model): except AttributeError: return '' - def author_str(self): - return ", ".join(str(t) for t in self.tags.filter(category='author')) + def authors(self): + return self.tags.filter(category='author') + + def author_unicode(self): + return ", ".join(self.authors().values_list('name', flat=True)) def save(self, force_insert=False, force_update=False, **kwargs): from sortify import sortify @@ -113,8 +119,8 @@ class Book(models.Model): self.title = unicode(self.title) # ??? try: - author = self.tags.filter(category='author')[0].sort_key - except IndexError: + author = self.authors().first().sort_key + except AttributeError: author = u'' self.sort_key_author = author @@ -131,6 +137,12 @@ class Book(models.Model): def create_url(slug): return 'catalogue.views.book_detail', [slug] + def gallery_path(self): + return gallery_path(self.slug) + + def gallery_url(self): + return gallery_url(self.slug) + @property def name(self): return self.title @@ -141,6 +153,9 @@ class Book(models.Model): def language_name(self): return dict(settings.LANGUAGES).get(self.language_code(), "") + def is_foreign(self): + return self.language_code() != settings.LANGUAGE_CODE + def has_media(self, type_): if type_ in Book.formats: return bool(getattr(self, "%s_file" % type_)) @@ -236,6 +251,21 @@ class Book(models.Model): index.index.rollback() raise e + def download_pictures(self, remote_gallery_url): + gallery_path = self.gallery_path() + # delete previous files, so we don't include old files in ebooks + if os.path.isdir(gallery_path): + for filename in os.listdir(gallery_path): + file_path = os.path.join(gallery_path, filename) + os.unlink(file_path) + ilustr_elements = list(self.wldocument().edoc.findall('//ilustr')) + if ilustr_elements: + makedirs(gallery_path) + for ilustr in ilustr_elements: + ilustr_src = ilustr.get('src') + ilustr_path = os.path.join(gallery_path, ilustr_src) + urllib.urlretrieve('%s/%s' % (remote_gallery_url, ilustr_src), ilustr_path) + @classmethod def from_xml_file(cls, xml_file, **kwargs): from django.core.files import File @@ -254,7 +284,7 @@ class Book(models.Model): @classmethod def from_text_and_meta(cls, raw_file, book_info, overwrite=False, dont_build=None, search_index=True, - search_index_tags=True): + search_index_tags=True, remote_gallery_url=None): if dont_build is None: dont_build = set() dont_build = set.union(set(dont_build), set(app_settings.DONT_BUILD)) @@ -322,6 +352,9 @@ class Book(models.Model): cls.repopulate_ancestors() tasks.update_counters.delay() + if remote_gallery_url: + book.download_pictures(remote_gallery_url) + # No saves beyond this point. # Build cover. @@ -448,7 +481,7 @@ class Book(models.Model): return books def pretty_title(self, html_links=False): - names = [(tag.name, tag.get_absolute_url()) for tag in self.tags.filter(category='author')] + names = [(tag.name, tag.get_absolute_url()) for tag in self.authors().only('name', 'category', 'slug')] books = self.parents() + [self] names.extend([(b.title, b.get_absolute_url()) for b in books]) @@ -478,8 +511,7 @@ class Book(models.Model): """ books_by_parent = {} - books = cls.objects.all().order_by('parent_number', 'sort_key').only( - 'title', 'parent', 'slug') + books = cls.objects.order_by('parent_number', 'sort_key').only('title', 'parent', 'slug') if book_filter: books = books.filter(book_filter).distinct() @@ -499,7 +531,7 @@ class Book(models.Model): books_by_author[tag] = [] for book in books_by_parent.get(None, ()): - authors = list(book.tags.filter(category='author')) + authors = list(book.authors().only('pk')) if authors: for author in authors: books_by_author[author].append(book) diff --git a/src/catalogue/templates/catalogue/book_detail.html b/src/catalogue/templates/catalogue/book_detail.html index b87e9eb1f..308318161 100644 --- a/src/catalogue/templates/catalogue/book_detail.html +++ b/src/catalogue/templates/catalogue/book_detail.html @@ -3,6 +3,7 @@ {% load common_tags catalogue_tags %} {% load ssify %} {% load build_absolute_uri from fnp_common %} +{% load cache %} {% block titleextra %}{{ book.pretty_title }}{% endblock %} {% block ogimage %}{% if book.cover %}{{ book.cover.url|build_absolute_uri:request }}{% endif %}{% endblock %} @@ -22,7 +23,10 @@

{% trans "Other versions" %}:

{% for rel in book.other_versions %} - {% ssi_include 'catalogue_book_mini' pk=rel.pk %} + {% cache 86400 book_mini_box rel.pk %} + {% include 'catalogue/book_mini_box.html' with book=rel %} + {% endcache %} + {#% ssi_include 'catalogue_book_mini' pk=rel.pk %#} {% endfor %}
{% endif %} diff --git a/src/catalogue/templates/catalogue/book_mini_box.html b/src/catalogue/templates/catalogue/book_mini_box.html index 88ec16dfd..b74d6519f 100755 --- a/src/catalogue/templates/catalogue/book_mini_box.html +++ b/src/catalogue/templates/catalogue/book_mini_box.html @@ -1,22 +1,24 @@ {% spaceless %} -
- + {% endwith %} {% endspaceless %} \ No newline at end of file diff --git a/src/catalogue/templates/catalogue/book_text.html b/src/catalogue/templates/catalogue/book_text.html index 339cfc7b2..f51e565e6 100644 --- a/src/catalogue/templates/catalogue/book_text.html +++ b/src/catalogue/templates/catalogue/book_text.html @@ -2,6 +2,7 @@ {% load i18n %} {% load catalogue_tags ssify %} {% load thumbnail %} +{% load cache %} {% block title %}{{ book.pretty_title }}{% endblock %} @@ -75,11 +76,15 @@