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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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
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):
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
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
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
'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(),
})
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 = []
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
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)
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')
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()
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)
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
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]
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:
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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"
msgstr "Infobox"
#: templates/catalogue/book_text.html:56
-#: templates/catalogue/viewer_base.html:53
+#: templates/catalogue/viewer_base.html:54
msgid "Close"
msgstr ""
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"
msgid "in Culture.pl"
msgstr ""
-#: templates/catalogue/viewer_base.html:55
+#: templates/catalogue/viewer_base.html:56
#, fuzzy
#| msgid "Leading"
msgid "Loading"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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"
msgstr "Infobox"
#: templates/catalogue/book_text.html:56
-#: templates/catalogue/viewer_base.html:53
+#: templates/catalogue/viewer_base.html:54
msgid "Close"
msgstr ""
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"
msgid "in Culture.pl"
msgstr ""
-#: templates/catalogue/viewer_base.html:55
+#: templates/catalogue/viewer_base.html:56
#, fuzzy
#| msgid "Leading"
msgid "Loading"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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"
msgstr "Infobox"
#: templates/catalogue/book_text.html:56
-#: templates/catalogue/viewer_base.html:53
+#: templates/catalogue/viewer_base.html:54
msgid "Close"
msgstr ""
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"
msgid "in Culture.pl"
msgstr ""
-#: templates/catalogue/viewer_base.html:55
+#: templates/catalogue/viewer_base.html:56
#, fuzzy
#| msgid "Leading"
msgid "Loading"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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"
msgstr "Infobox"
#: templates/catalogue/book_text.html:56
-#: templates/catalogue/viewer_base.html:53
+#: templates/catalogue/viewer_base.html:54
msgid "Close"
msgstr ""
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)"
msgid "in Culture.pl"
msgstr ""
-#: templates/catalogue/viewer_base.html:55
+#: templates/catalogue/viewer_base.html:56
#, fuzzy
#| msgid "Leading"
msgid "Loading"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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"
msgstr "Infobox"
#: templates/catalogue/book_text.html:56
-#: templates/catalogue/viewer_base.html:53
+#: templates/catalogue/viewer_base.html:54
msgid "Close"
msgstr ""
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"
msgid "in Culture.pl"
msgstr ""
-#: templates/catalogue/viewer_base.html:55
+#: templates/catalogue/viewer_base.html:56
#, fuzzy
#| msgid "Leading"
msgid "Loading"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 "
msgstr "Infobox"
#: templates/catalogue/book_text.html:56
-#: templates/catalogue/viewer_base.html:53
+#: templates/catalogue/viewer_base.html:54
msgid "Close"
msgstr ""
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"
msgid "in Culture.pl"
msgstr ""
-#: templates/catalogue/viewer_base.html:55
+#: templates/catalogue/viewer_base.html:56
#, fuzzy
#| msgid "Leading"
msgid "Loading"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: Fundacja Nowoczesna Polska <fundacja@nowoczesnapolska.org."
msgid "All things"
msgstr "Wszystkie przedmioty"
-#: forms.py:27
+#: forms.py:28
msgid "Please supply an XML."
msgstr "Proszę podać XML."
-#: forms.py:45
+#: forms.py:47
msgid "Don't show footnotes"
msgstr "Bez przypisów"
-#: forms.py:46
+#: forms.py:48
msgid "Don't disply themes"
msgstr "Bez motywów"
-#: forms.py:47
+#: forms.py:49
msgid "Don't use our custom font"
msgstr "Bez naszego kroju pisma"
-#: forms.py:48
+#: forms.py:50
msgid "Without cover"
msgstr "Bez okładki"
-#: forms.py:51
+#: forms.py:53
msgid "Leading"
msgstr "Interlinia"
-#: forms.py:52
+#: forms.py:54
msgid "Normal leading"
msgstr "Zwykła interlinia"
-#: forms.py:53
+#: forms.py:55
msgid "One and a half leading"
msgstr "Powiększona interlinia"
-#: forms.py:54
+#: forms.py:56
msgid "Double leading"
msgstr "Podwójna interlinia"
-#: forms.py:56
+#: forms.py:58
msgid "Font size"
msgstr "Rozmiar tekstu"
-#: forms.py:57
+#: forms.py:59
msgid "Default"
msgstr "Domyślnie"
-#: forms.py:58
+#: forms.py:60
msgid "Big"
msgstr "Duży"
-#: forms.py:80
+#: forms.py:82
msgid "Queue is full. Please try again later."
msgstr "Kolejka jest pełna. Proszę spróbować ponownie później."
-#: models/book.py:45 models/collection.py:14
+#: models/book.py:48 models/collection.py:14
msgid "title"
msgstr "tytuł"
-#: models/book.py:46 models/tag.py:35
+#: models/book.py:49 models/tag.py:35
msgid "sort key"
msgstr "klucz sortowania"
-#: models/book.py:48
+#: models/book.py:51
msgid "sort key by author"
msgstr "klucz sortowania wg autora"
-#: 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 "Kod języka"
-#: 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 "opis"
-#: 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 utworzenia"
-#: models/book.py:55
+#: models/book.py:58
msgid "parent number"
msgstr "numer rodzica"
-#: models/book.py:56 models/bookmedia.py:35
+#: models/book.py:59 models/bookmedia.py:35
msgid "extra information"
msgstr "dodatkowe informacje"
-#: models/book.py:62
+#: models/book.py:65
msgid "cover"
msgstr "okładka"
-#: models/book.py:68
+#: models/book.py:71
msgid "cover thumbnail"
msgstr "podgląd okładki"
-#: models/book.py:93 models/collection.py:22
+#: models/book.py:96 models/collection.py:22
msgid "book"
msgstr "książka"
-#: models/book.py:94
+#: models/book.py:97
msgid "books"
msgstr "książki"
-#: models/book.py:269
+#: models/book.py:292
#, python-format
msgid "Book \"%s\" does not exist."
msgstr "Utwór \"%s\" nie istnieje."
-#: models/book.py:282
+#: models/book.py:305
#, python-format
msgid "Book %s already exists"
msgstr "Książka %s już istnieje"
-#: models/book.py:529
+#: models/book.py:555
msgid "This work needs modernisation"
msgstr "Ten utwór wymaga uwspółcześnienia"
-#: models/book.py:557 models/bookmedia.py:29
+#: models/book.py:583 models/bookmedia.py:29
#, python-format
msgid "%s file"
msgstr "plik %s"
msgstr "Informacje"
#: templates/catalogue/book_text.html:56
-#: templates/catalogue/viewer_base.html:53
+#: templates/catalogue/viewer_base.html:54
msgid "Close"
msgstr "Zamknij"
#: templates/catalogue/inline_tag_list.html:6
msgid "Chosen"
-msgstr "Wybrane"
+msgstr "Wybrano"
#: templates/catalogue/inline_tag_list.html:14
#: templates/catalogue/inline_tag_list.html:23
#: templates/catalogue/inline_tag_list.html:32
msgid "Other"
-msgstr "Inne"
+msgstr "Zobacz też"
#: templates/catalogue/picture_detail.html:29
msgid "Work is licensed under "
msgid "Work's themes "
msgstr "Motywy w utworze"
-#: 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"
msgid "in Culture.pl"
msgstr "w Culture.pl"
-#: templates/catalogue/viewer_base.html:55
+#: templates/catalogue/viewer_base.html:56
msgid "Loading"
msgstr "Ładowanie"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 файл"
msgstr "Инфобокс"
#: templates/catalogue/book_text.html:56
-#: templates/catalogue/viewer_base.html:53
+#: templates/catalogue/viewer_base.html:54
msgid "Close"
msgstr ""
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"
msgid "in Culture.pl"
msgstr ""
-#: templates/catalogue/viewer_base.html:55
+#: templates/catalogue/viewer_base.html:56
#, fuzzy
#| msgid "Leading"
msgid "Loading"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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"
msgstr "Інфобокс"
#: templates/catalogue/book_text.html:56
-#: templates/catalogue/viewer_base.html:53
+#: templates/catalogue/viewer_base.html:54
msgid "Close"
msgstr ""
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"
msgid "in Culture.pl"
msgstr ""
-#: templates/catalogue/viewer_base.html:55
+#: templates/catalogue/viewer_base.html:56
#, fuzzy
#| msgid "Leading"
msgid "Loading"
#
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
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()
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
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
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
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_))
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
@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))
cls.repopulate_ancestors()
tasks.update_counters.delay()
+ if remote_gallery_url:
+ book.download_pictures(remote_gallery_url)
+
# No saves beyond this point.
# Build cover.
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])
"""
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()
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)
{% 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 %}
<section class="see-also" style="display: inline-block;">
<h1>{% trans "Other versions" %}:</h1>
{% 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 %}
</section>
{% endif %}
{% spaceless %}
-<div class="book-mini-box">
- <div class="book-mini-box-inner">
- {% if with_link %}
- <a href="{{ book.get_absolute_url }}">
- {% endif %}
- {% if book.cover_thumb %}
- <img src="{{ book.cover_thumb.url }}" alt="{{ author_str }} – {{ book.title }}" class="cover" />
+ {% with book.author_unicode as author %}
+ <div class="book-mini-box">
+ <div class="book-mini-box-inner">
+ {% if not no_link %}
+ <a href="{{ book.get_absolute_url }}">
{% endif %}
- {% if show_lang %}
+ {% if book.cover_thumb %}
+ <img src="{{ book.cover_thumb.url }}" alt="{{ author }} – {{ book.title }}" class="cover" />
+ {% endif %}
+ {% if book.is_foreign %}
<span class="language" title="{{ book.language_name }}">{{ book.language_code }}</span>
- {% endif %}
- <div class="desc">
- <span class="mono author">{{ author_str }}</span>
+ {% endif %}
+ <div class="desc">
+ <span class="mono author">{{ author }}</span>
<span class="title">{{ book.title }}</span>
- </div>
- {% if with_link %}
- </a>
- {% endif %}
+ </div>
+ {% if not no_link %}
+ </a>
+ {% endif %}
+ </div>
</div>
-</div>
+ {% endwith %}
{% endspaceless %}
\ No newline at end of file
{% load i18n %}
{% load catalogue_tags ssify %}
{% load thumbnail %}
+{% load cache %}
{% block title %}{{ book.pretty_title }}{% endblock %}
<ul>
{% spaceless %}
{% for other_version in book.other_versions %}
- <li><a class="display-other"
- data-other="{{ other_version.html_file.url }}"
- href="{% url 'book_text' other_version.slug %}">
- {% ssi_include 'catalogue_book_mini_nolink' pk=other_version.pk %}
- </a>
+ <li>
+ <a class="display-other"
+ data-other="{{ other_version.html_file.url }}"
+ href="{% url 'book_text' other_version.slug %}">
+ {% cache 86400 book_mini_box other_version.pk %}
+ {% include 'catalogue/book_mini_box.html' with book=other_version no_link=True %}
+ {% endcache %}
+ {#% ssi_include 'catalogue_book_mini_nolink' pk=other_version.pk %#}
+ </a>
</li>
{% endfor %}
{% endspaceless %}
{% spaceless %}
{% load i18n %}
{% load ssi_include from ssify %}
+{% load cache %}
<div class="collection-box white-box">
<h2><a href="{{ obj.get_absolute_url }}">{% trans "Collection" %}: {{ obj }}</a></h2>
{% if obj.description %}
{{ obj.description|safe|truncatewords_html:40 }}
{% endif %}
- {% for b in obj.get_books|slice:":5" %}
- {% ssi_include 'catalogue_book_mini' pk=b.pk %}
+ {% for book in obj.get_books|slice:":5" %}
+ {% cache 86400 book_mini_box book.pk %}
+ {% include 'catalogue/book_mini_box.html' %}
+ {% endcache %}
+ {#% ssi_include 'catalogue_book_mini' pk=book.pk %#}
{% endfor %}
{% with obj.get_books.count|add:-5 as more %}
{% if more > 0 %}
{% if choices %}
{% if category_choices %}
<ul>
- <li class="header">{% trans "Chosen" %}:</li>
{% for tag in category_choices %}
<li class="active">{{ tag }} <a href="{% catalogue_url list_type choices -tag %}">X</a></li>
{% endfor %}
{% endif %}
{% if tags %}
<ul>
- <li class="header">{% trans "Available" %}:</li>
{% for tag in tags %}
<li><a href="{% catalogue_url list_type choices tag %}">{{ tag }}{% if tag.count %} ({{ tag.count }}){% endif %}</a></li>
{% endfor %}
{% load i18n pipeline %}
{% load catalogue_tags %}
{% load thumbnail %}
+ {% load piwik_tags %}
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="description"
</div>
<div style="clear: both"></div>
-
-<div class="jp-type-playlist">
- <div id="jplayer" class="jp-jplayer"
- data-supplied="{% if have_oggs %}oga,{% endif %}mp3"></div>
- <div id="jp_container_1" class="jp-audio">
- <div class="jp-type-single">
- <div class="jp-gui jp-interface">
- <ul class="jp-controls">
- <li><a href="javascript:;" class="jp-play" tabindex="1">play</a></li>
- <li><a href="javascript:;" class="jp-pause" tabindex="1">pause</a></li>
- <li><a href="javascript:;" class="jp-stop" tabindex="1">stop</a></li>
- <li><a href="javascript:;" class="jp-mute" tabindex="1" title="mute">mute</a></li>
- <li><a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute">unmute</a></li>
- <li><a href="javascript:;" class="jp-volume-max" tabindex="1" title="max volume">max volume</a></li>
- </ul>
- <div class="jp-progress">
- <div class="jp-seek-bar">
- <div class="jp-play-bar"></div>
- </div>
- </div>
- <div class="jp-volume-bar">
- <div class="jp-volume-bar-value"></div>
- </div>
- <div class="jp-time-holder">
- <div class="jp-current-time"></div>
- <div class="jp-duration"></div>
- </div>
- </div>
-
- <div class="jp-playlist">
- <ul>
-
- {% for i in audiobooks %}
- <li>
- <div class='play'>{{ i.mp3.name }}
- <div class='extra-info'>
- {% trans "Artist:" %}: <span class='artist'>{{ i.mp3.extra_info.artist_name }}</span>,
- {% trans "director:" %}: <span class='director'>{{ i.mp3.extra_info.director_name }}</span>
- </div>
- </div>
- </li>
- {% endfor %}
-
- </ul>
- </div>
-
- <div class="jp-no-solution">
- <span>Update Required</span>
- To play the media you will need to either update your browser to a recent version or update your <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a>.
- </div>
- </div>
- </div>
-</div>
-
+ {% include "catalogue/snippets/jplayer.html" %}
{% if projects|length > 1 %}
<p>{% trans "Audiobooks were prepared as a part of the projects:" %}</p>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
{% javascript "player" %}
- {{ piwik_tag|safe }}
+ {% tracking_code %}
</body>
</html>
{% load catalogue_random_book from catalogue_tags %}
{% load picture_random_picture from picture_tags %}
{% load ssi_include from ssify %}
+{% load cache %}
{% for pic in pics %}
{% ssi_include 'picture_mini' pk=pic.pk %}
{% endfor %}
{% for book in books %}
- {% ssi_include 'catalogue_book_mini' pk=book.pk %}
+ {% cache 86400 book_mini_box book.pk %}
+ {% include 'catalogue/book_mini_box.html' %}
+ {% endcache %}
+ {#% ssi_include 'catalogue_book_mini' pk=book.pk %#}
{% endfor %}
{% if random %}
{% load i18n %}
{% load static from staticfiles %}
{% load pipeline %}
+{% load piwik_tags %}
<html class="no-js">
<head>
<meta charset="utf-8">
</script>
{% javascript "book_text" %}
- {{ piwik_tag|safe }}
+ {% tracking_code %}
{% block extrabody %}{% endblock %}
<script src="{% static "js/contrib/modernizr.custom.19652.js" %}"></script>
</body>
initial = obj.get_initial().upper()
if initial != last_initial:
last_initial = initial
- names.append((obj.author_str() if by_author else initial, []))
+ names.append((obj.author_unicode() if by_author else initial, []))
names[-1][1].append(obj)
return {
'paged': paged,
book = models.Book.from_text_and_meta(ContentFile(book_text), self.book_info)
self.assert_([('theme', 'love')],
- [(tag.category, tag.slug) for tag in book.fragments.all()[0].tags.filter(category='theme')])
+ book.fragments.all()[0].tags.filter(category='theme').values_list('category', 'slug'))
def test_book_with_no_theme(self):
""" fragments with no themes shouldn't be created at all """
related_themes = book.related_themes()
for category in 'author', 'kind', 'genre', 'epoch':
- self.assertTrue('tag' in [tag.slug for tag in book.tags.filter(category=category)],
+ self.assertTrue('tag' in book.tags.filter(category=category).values_list('slug', flat=True),
'missing related tag for %s' % category)
self.assertTrue('tag' in [tag.slug for tag in related_themes])
book = models.Book.objects.get(slug='parent')
related_themes = book.related_themes()
- self.assertEqual([t.slug for t in book.tags.filter(category='author')],
+ self.assertEqual([t.slug for t in book.authors()],
['common-man'])
self.assertEqual([t.slug for t in book.tags.filter(category='kind')],
['kind'])
#
from collections import defaultdict
import hashlib
+import os.path
import random
import re
import time
def delete_from_cache_by_language(cache, key_template):
cache.delete_many([key_template % lc for lc, ln in settings.LANGUAGES])
+
+
+def gallery_path(slug):
+ return os.path.join(settings.MEDIA_ROOT, settings.IMAGE_DIR, slug)
+
+
+def gallery_url(slug):
+ return '%s%s%s/' % (settings.MEDIA_URL, settings.IMAGE_DIR, slug)
def repl(m):
l = m.group()
- return u"(%s)" % '|'.join(names[l])
+ return u"(?:%s)" % '|'.join(names[l])
return re.sub(u'[%s]' % (u''.join(names.keys())), repl, query)
@ssi_included
def book_mini(request, pk, with_link=True):
- book = get_object_or_404(Book, pk=pk)
- author_str = ", ".join(tag.name for tag in book.tags.filter(category='author'))
+ # book = get_object_or_404(Book, pk=pk)
+ try:
+ book = Book.objects.only('cover_thumb', 'title', 'language', 'slug').get(pk=pk)
+ except Book.DoesNotExist:
+ raise Http404
return render(request, 'catalogue/book_mini_box.html', {
'book': book,
- 'author_str': author_str,
- 'with_link': with_link,
- 'show_lang': book.language_code() != settings.LANGUAGE_CODE,
+ 'no_link': not with_link,
})
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-04-11 22:56+0100\n"
"Last-Translator: Kamil <kjaklukowski@gmail.com>\n"
"Language-Team: \n"
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-03-04 20:05+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-18 13:02+0100\n"
"Last-Translator: Anna Jopp <aniajopp@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-22 20:52+0100\n"
"Last-Translator: Ela Janota <amarillis5@wp.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-21 16:52+0100\n"
"Last-Translator: xxx\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-01 16:13+0100\n"
"Last-Translator: Aneta\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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: 2010-05-19 16:19\n"
"Last-Translator: <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-04 22:10+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-04 17:29+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: WolneLektury-dictionary\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: 2014-10-24 11:58+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2015-04-16 13:13+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-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: \n"
"Last-Translator: Kamil <kjaklukowski@gmail.com>\n"
"Language-Team: de <yourteam@example.com>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-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: \n"
"Last-Translator: KG <kamila.gawron87@gmail.com>\n"
"Language-Team: es <yourteam@example.com>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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:38+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-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: \n"
"Last-Translator: Natalia Kertyczak <natalczyk@o2.pl>\n"
"Language-Team: uk <yourteam@example.com>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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:38+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-13 12:19+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: \n"
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-03-04 20:05+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-28 12:01+0100\n"
"Last-Translator: Aneta <afroneta@wp.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-23 17:28+0100\n"
"Last-Translator: Ela Janota <amarillis5@wp.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-18 13:41+0100\n"
"Last-Translator: xxx\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-01 16:13+0100\n"
"Last-Translator: Aneta\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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: 2010-05-19 16:20\n"
"Last-Translator: <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-04 22:11+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-29 23:08+0100\n"
"Last-Translator: Anna Vasiutynska <was_ania@op.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
-from oaipmh import server, common, metadata, error
-from catalogue.models import Book, Tag
-from api.models import Deleted
-from api.handlers import WL_BASE
-from librarian import WLURI
from datetime import datetime
from lxml import etree
+
from django.conf import settings
+from django.contrib.contenttypes.models import ContentType
from django.contrib.sites.models import Site
from django.utils import timezone
+from oaipmh import server, common, metadata, error
+
+from api.handlers import WL_BASE
+from api.models import Deleted
+from catalogue.models import Book
+from librarian import WLURI
def make_time_naive(d):
try:
earliest_delete = \
- Deleted.objects.exclude(slug__exact=u'').ordery_by('deleted_at')[0].deleted_at
+ Deleted.objects.exclude(slug__exact=u'').order_by('deleted_at')[0].deleted_at
except IndexError:
earliest_delete = year_zero
self.earliest_datestamp = earliest_change if earliest_change <= earliest_delete else earliest_delete
- # @staticmethod
- # def metadata(book):
- # try:
- # xml = etree.parse(book.xml_file)
- # finally:
- # book.xml_file.close()
- # md = wl_dc_reader(xml)
- # m = md.getMap()
- # if book.parent:
- # m['isPartOf'] = [str(WLURI.from_slug(book.parent.slug))]
- # return m
-
- # WTF
- # def record_for_book(self, book, headers_only=False):
- # meta = None
- # identifier = self.slug_to_identifier(book.slug)
- # if isinstance(book, Book):
- # # setSpec = map(self.tag_to_setspec, book.tags.filter(category__in=self.TAG_CATEGORIES))
- # header = common.Header(identifier, make_time_naive(book.changed_at), [], False)
- # if not headers_only:
- # meta = common.Metadata(self.metadata(book))
- # about = None
- # elif isinstance(book, Deleted):
- # header = common.Header(identifier, make_time_naive(book.deleted_at), [], True)
- # if not headers_only:
- # meta = common.Metadata({})
- # about = None
- # if headers_only:
- # return header
- # return header, meta, about
-
- # def identify(self, **kw):
- # ident = common.Identify(
- # 'Wolne Lektury', # generate
- # '%s/oaipmh' % unicode(WL_BASE), # generate
- # '2.0', # version
- # [m[1] for m in settings.MANAGERS], # adminEmails
- # make_time_naive(self.earliest_datestamp), # earliest datestamp of any change
- # 'persistent', # deletedRecord
- # 'YYYY-MM-DDThh:mm:ssZ', # granularity
- # ['identity'], # compression
- # [] # descriptions
- # )
- # return ident
-
- # def books(self, tag, from_, until):
- # if tag:
- # # we do not support sets, since they are problematic for deleted books.
- # raise error.NoSetHierarchyError("Wolne Lektury does not support sets.")
- # # books = Book.tagged.with_all([tag])
- # else:
- # books = Book.objects.all()
- # deleted = Deleted.objects.exclude(slug__exact=u'')
- #
- # books = books.order_by('changed_at')
- # deleted = deleted.order_by('deleted_at')
- # if from_:
- # books = books.filter(changed_at__gte=from_)
- # deleted = deleted.filter(deleted_at__gte=from_)
- # if until:
- # books = books.filter(changed_at__lte=until)
- # deleted = deleted.filter(deleted_at__lte=until)
- # return list(books) + list(deleted)
+ @staticmethod
+ def metadata(book):
+ try:
+ xml = etree.parse(book.xml_file)
+ finally:
+ book.xml_file.close()
+ md = wl_dc_reader(xml)
+ m = md.getMap()
+ if book.parent:
+ m['isPartOf'] = [str(WLURI.from_slug(book.parent.slug))]
+ return m
+
+ def record_for_book(self, book, headers_only=False):
+ meta = None
+ identifier = self.slug_to_identifier(book.slug)
+ if isinstance(book, Book):
+ # setSpec = map(self.tag_to_setspec, book.tags.filter(category__in=self.TAG_CATEGORIES))
+ header = common.Header(identifier, make_time_naive(book.changed_at), [], False)
+ if not headers_only:
+ meta = common.Metadata(self.metadata(book))
+ about = None
+ elif isinstance(book, Deleted):
+ header = common.Header(identifier, make_time_naive(book.deleted_at), [], True)
+ if not headers_only:
+ meta = common.Metadata({})
+ about = None
+ else:
+ raise TypeError('Unknown book class')
+ if headers_only:
+ return header
+ return header, meta, about
+
+ def identify(self, **kw):
+ ident = common.Identify(
+ 'Wolne Lektury', # generate
+ '%s/oaipmh' % unicode(WL_BASE), # generate
+ '2.0', # version
+ [m[1] for m in settings.MANAGERS], # adminEmails
+ make_time_naive(self.earliest_datestamp), # earliest datestamp of any change
+ 'persistent', # deletedRecord
+ 'YYYY-MM-DDThh:mm:ssZ', # granularity
+ ['identity'], # compression
+ [] # descriptions
+ )
+ return ident
+
+ def books(self, tag, from_, until):
+ if tag:
+ # we do not support sets, since they are problematic for deleted books.
+ raise error.NoSetHierarchyError("Wolne Lektury does not support sets.")
+ # books = Book.tagged.with_all([tag])
+ else:
+ books = Book.objects.all()
+ deleted = Deleted.objects.exclude(slug__exact=u'')
+
+ books = books.order_by('changed_at')
+ deleted = deleted.order_by('deleted_at')
+ if from_:
+ books = books.filter(changed_at__gte=from_)
+ deleted = deleted.filter(deleted_at__gte=from_)
+ if until:
+ books = books.filter(changed_at__lte=until)
+ deleted = deleted.filter(deleted_at__lte=until)
+ return list(books) + list(deleted)
# @staticmethod
# def tag_to_setspec(tag):
# return tag
# raise error.NoSetHierarchyError("Setspec should have two components: category:slug")
- # def getRecord(self, **kw):
- # """Returns (header, metadata, about) for given record."""
- # slug = self.identifier_to_slug(kw['identifier'])
- # try:
- # book = Book.objects.get(slug=slug)
- # return self.record_for_book(book)
- # except Book.DoesNotExist:
- # book_type = ContentType.objects.get_for_model(Book)
- # try:
- # deleted_book = Deleted.objects.get(content_type=book_type,
- # slug=slug)
- # except:
- # raise error.IdDoesNotExistError("No item for this identifier")
- # return self.record_for_book(deleted_book)
-
- # def validate_kw(self, kw):
- # if 'resumptionToken' in kw:
- # raise error.BadResumptionTokenError("No resumption token support at this point")
- # if 'metadataPrefix' in kw and not self.metadata_registry.hasWriter(kw['metadataPrefix']):
- # raise error.CannotDisseminateFormatError("This format is not supported")
-
- # def identifier_to_slug(self, ident):
- # return ident.split(':')[-1]
-
- # def slug_to_identifier(self, slug):
- # return self.oai_id % slug
-
- # def listIdentifiers(self, **kw):
- # self.validate_kw(kw)
- # records = [self.record_for_book(book, headers_only=True) for
- # book in self.books(None,
- # kw.get('from_', None),
- # kw.get('until', None))]
- # return records, None
-
- # def listRecords(self, **kw):
- # """
- # can get a resumptionToken kw.
- # returns result, token
- # """
- # self.validate_kw(kw)
- # records = [self.record_for_book(book) for
- # book in self.books(None,
- # kw.get('from_', None),
- # kw.get('until', None))]
- #
- # return records, None
-
- # def listMetadataFormats(self, **kw):
- # formats = [
- # ('oai_dc',
- # 'http://www.openarchives.org/OAI/2.0/oai_dc.xsd',
- # server.NS_OAIDC),
- # ('qdc',
- # 'http://dublincore.org/schemas/xmls/qdc/2006/01/06/dcterms.xsd',
- # NS_DCTERMS)]
- # if 'identifier' in kw:
- # slug = self.identifier_to_slug(kw['identifier'])
- # try:
- # b = Book.objects.get(slug=slug)
- # return formats
- # except:
- # try:
- # d = Deleted.objects.get(slug=slug)
- # return []
- # except:
- # raise error.IdDoesNotExistError("This id does not exist")
- # else:
- # return formats
-
- # def listSets(self, **kw):
- # raise error.NoSetHierarchyError("Wolne Lektury does not support sets.")
- # # tags = []
- # # for category in Catalogue.TAG_CATEGORIES:
- # # for tag in Tag.objects.filter(category=category):
- # # tags.append(("%s:%s" % (tag.category, tag.slug),
- # # tag.name,
- # # tag.description))
- # # return tags, None
+ def getRecord(self, **kw):
+ """Returns (header, metadata, about) for given record."""
+ slug = self.identifier_to_slug(kw['identifier'])
+ try:
+ book = Book.objects.get(slug=slug)
+ return self.record_for_book(book)
+ except Book.DoesNotExist:
+ book_type = ContentType.objects.get_for_model(Book)
+ try:
+ deleted_book = Deleted.objects.get(content_type=book_type, slug=slug)
+ except:
+ raise error.IdDoesNotExistError("No item for this identifier")
+ return self.record_for_book(deleted_book)
+
+ def validate_kw(self, kw):
+ if 'resumptionToken' in kw:
+ raise error.BadResumptionTokenError("No resumption token support at this point")
+ if 'metadataPrefix' in kw and not self.metadata_registry.hasWriter(kw['metadataPrefix']):
+ raise error.CannotDisseminateFormatError("This format is not supported")
+
+ def identifier_to_slug(self, ident):
+ return ident.split(':')[-1]
+
+ def slug_to_identifier(self, slug):
+ return self.oai_id % slug
+
+ def listIdentifiers(self, **kw):
+ self.validate_kw(kw)
+ records = [self.record_for_book(book, headers_only=True) for
+ book in self.books(None, kw.get('from_'), kw.get('until'))]
+ return records, None
+
+ def listRecords(self, **kw):
+ """
+ can get a resumptionToken kw.
+ returns result, token
+ """
+ self.validate_kw(kw)
+ records = [self.record_for_book(book) for
+ book in self.books(None,
+ kw.get('from_', None),
+ kw.get('until', None))]
+
+ return records, None
+
+ def listMetadataFormats(self, **kw):
+ formats = [
+ ('oai_dc',
+ 'http://www.openarchives.org/OAI/2.0/oai_dc.xsd',
+ server.NS_OAIDC),
+ ('qdc',
+ 'http://dublincore.org/schemas/xmls/qdc/2006/01/06/dcterms.xsd',
+ NS_DCTERMS)]
+ if 'identifier' in kw:
+ slug = self.identifier_to_slug(kw['identifier'])
+ try:
+ Book.objects.get(slug=slug)
+ return formats
+ except Book.DoesNotExist:
+ try:
+ Deleted.objects.get(slug=slug)
+ return []
+ except Deleted.DoesNotExist:
+ raise error.IdDoesNotExistError("This id does not exist")
+ else:
+ return formats
+
+ def listSets(self, **kw):
+ raise error.NoSetHierarchyError("Wolne Lektury does not support sets.")
+ # tags = []
+ # for category in Catalogue.TAG_CATEGORIES:
+ # for tag in Tag.objects.filter(category=category):
+ # tags.append(("%s:%s" % (tag.category, tag.slug),
+ # tag.name,
+ # tag.description))
+ # return tags, None
def item_author_name(self, book):
try:
- return book.tags.filter(category='author')[0].name
- except KeyError:
+ return book.authors().first().name
+ except AttributeError:
return u''
def item_author_link(self, book):
try:
- return book.tags.filter(category='author')[0].get_absolute_url()
- except KeyError:
+ return book.authors().first().get_absolute_url()
+ except AttributeError:
return u''
def item_enclosure_url(self, book):
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-04-15 13:43+0100\n"
"Last-Translator: Kamil <kjaklukowski@gmail.com>\n"
"Language-Team: \n"
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-03-04 20:05+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-05-17 22:05+0100\n"
"Last-Translator: KG <kamila.gawron87@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-22 20:58+0100\n"
"Last-Translator: Ela Janota <amarillis5@wp.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-21 17:06+0100\n"
"Last-Translator: xxx\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-04-03 18:01+0100\n"
"Last-Translator: Karolina Zuber <suomija@o2.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-11 15:47+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-04 22:11+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-05-28 14:18+0100\n"
"Last-Translator: Natalia Kertyczak <natalczyk@o2.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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: 2014-10-24 11:48+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
self.sort_key = sortify(self.title)[:120]
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
def __unicode__(self):
return self.title
- 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 tag_unicode(self, category):
- return ", ".join(unicode(t) for t in self.tags.filter(category=category))
+ return ", ".join(self.tags.filter(category=category).values_list('name', flat=True))
def author_unicode(self):
return self.tag_unicode('author')
pics_by_author[tag] = []
for pic in pics.iterator():
- authors = list(pic.tags.filter(category='author'))
+ authors = list(pic.authors().only('pk'))
if authors:
for author in authors:
pics_by_author[author].append(pic)
return self._info
def pretty_title(self, html_links=False):
- picture = self
- 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')]
names.append((self.title, self.get_absolute_url()))
if html_links:
<a href="{{ picture.get_absolute_url }}">
{% endif %}
{% if picture.image_file %}
- <img src="{% thumbnail picture.image_file "139x193" crop="center" as thumb %}{{ thumb.url }}{% empty %}{{ picture.image_file.url }}{% endthumbnail %}" alt="{{ author_str }} – {{ picture.title }}" class="cover" />
+ <img src="{% thumbnail picture.image_file "139x193" crop="center" as thumb %}{{ thumb.url }}{% empty %}{{ picture.image_file.url }}{% endthumbnail %}" alt="{{ author }} – {{ picture.title }}" class="cover" />
{% endif %}
<div class="desc">
- <span class="mono author">{{ author_str }}</span>
+ <span class="mono author">{{ author }}</span>
<span class="title">{{ picture.title }}</span>
</div>
{% if with_link %}
@ssi_included
def picture_mini(request, pk, with_link=True):
picture = get_object_or_404(Picture, pk=pk)
- author_str = ", ".join(tag.name for tag in picture.tags.filter(category='author'))
return render(request, 'picture/picture_mini_box.html', {
'picture': picture,
- 'author_str': author_str,
+ 'author': picture.author_unicode(),
'with_link': with_link,
})
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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:40+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-03-09 11:35+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-03-10 13:31+0100\n"
"Last-Translator: Kamil <kjaklukowski@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-05-17 23:20+0100\n"
"Last-Translator: KG <kamila.gawron87@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: 2\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-03-04 20:25+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-03-02 18:24+0100\n"
"Last-Translator: Karolina Zuber <suomija@o2.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-01-27 16:41+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-03-04 22:11+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-04-10 22:12+0100\n"
"Last-Translator: Natalia Kertyczak <natalczyk@o2.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
self._user = user
data = kwargs.setdefault('data', {})
if 'tags' not in data and user.is_authenticated():
- data['tags'] = ', '.join(t.name for t in obj.tags.filter(category='set', user=user).iterator() if t.name)
+ data['tags'] = ', '.join(
+ obj.tags.filter(category='set', user=user).exclude(name__in=(None, '')).values_list('name', flat=True))
super(ObjectSetsForm, self).__init__(*args, **kwargs)
def save(self, request):
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2014-01-24 10:06+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
return likes(request.user, Book.objects.get(pk=book_id), request)
-def choose_cite(request, book_id=None, tag_ids=None):
+def choose_cite(book_id=None, tag_ids=None):
"""Choose a cite for main page, for book or for set of tags."""
- try:
- assert request.user.is_staff
- assert 'choose_cite' in request.GET
- cite = Cite.objects.get(pk=request.GET['choose_cite'])
- except (AssertionError, Cite.DoesNotExist):
- if book_id is not None:
- cites = Cite.objects.filter(Q(book=book_id) | Q(book__ancestor=book_id))
- elif tag_ids is not None:
- tags = Tag.objects.filter(pk__in=tag_ids)
- cites = cites_for_tags(tags)
- else:
- cites = Cite.objects.all()
- stickies = cites.filter(sticky=True)
- count = stickies.count()
+ if book_id is not None:
+ cites = Cite.objects.filter(Q(book=book_id) | Q(book__ancestor=book_id))
+ elif tag_ids is not None:
+ tags = Tag.objects.filter(pk__in=tag_ids)
+ cites = cites_for_tags(tags)
+ else:
+ cites = Cite.objects.all()
+ stickies = cites.filter(sticky=True)
+ count = stickies.count()
+ if count:
+ cite = stickies[randint(0, count - 1)]
+ else:
+ count = cites.count()
if count:
- cite = stickies[randint(0, count - 1)]
+ cite = cites[randint(0, count - 1)]
else:
- count = cites.count()
- if count:
- cite = cites[randint(0, count - 1)]
- else:
- cite = None
+ cite = None
return cite
@ssi_variable(register, name='choose_cite', patch_response=[add_never_cache_headers])
def choose_cite_tag(request, book_id=None, tag_ids=None):
- cite = choose_cite(request, book_id, tag_ids)
+ try:
+ assert request.user.is_staff
+ assert 'choose_cite' in request.GET
+ cite = Cite.objects.get(pk=request.GET['choose_cite'])
+ except (AssertionError, Cite.DoesNotExist):
+ cite = choose_cite(book_id, tag_ids)
return cite.pk if cite is not None else None
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: 2010-06-23 11:48+0100\n"
"Last-Translator: Iwona Fiałkowska <ifialkowska@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-04 20:05+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-28 12:01+0100\n"
"Last-Translator: Aneta <afroneta@wp.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-22 21:00+0100\n"
"Last-Translator: Ela Janota <amarillis5@wp.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-02-21 17:43+0100\n"
"Last-Translator: xxxx\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-01 16:13+0100\n"
"Last-Translator: Aneta\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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: 2010-05-19 16:18\n"
"Last-Translator: <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-04 22:11+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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-03-04 17:30+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
class PublishingSuggestForm(forms.Form):
contact = forms.CharField(label=_('Contact'), max_length=120, required=False)
- books = forms.CharField(label=_('books'), widget=forms.Textarea, required=False)
- audiobooks = forms.CharField(label=_('audiobooks'), widget=forms.Textarea, required=False)
+ books = forms.CharField(label=_('books'), widget=forms.Textarea, required=True)
+ ebook = forms.BooleanField(label=_('ebook'), required=False, initial=True)
+ audiobook = forms.BooleanField(label=_('audiobook'), required=False)
def clean(self):
- if not self.cleaned_data['books'] and not self.cleaned_data['audiobooks']:
- msg = ugettext(u"One of these fields is required.")
- self._errors["books"] = self.error_class([msg])
- self._errors["audiobooks"] = self.error_class([msg])
+ if not self.cleaned_data['ebook'] and not self.cleaned_data['audiobook']:
+ msg = ugettext(u"One of these options is required.")
+ self._errors['ebook'] = self.error_class([msg])
+ self._errors['audiobook'] = self.error_class([msg])
return super(PublishingSuggestForm, self).clean()
def save(self, request):
contact = self.cleaned_data['contact']
- books = self.cleaned_data['books']
- audiobooks = self.cleaned_data['audiobooks']
+ suggestion_text = self.cleaned_data['books'].strip(', \n\r')
+
+ books = suggestion_text if self.cleaned_data['ebook'] else ''
+ audiobooks = suggestion_text if self.cleaned_data['audiobook'] else ''
suggestion = PublishingSuggestion(
contact=contact, books=books,
suggestion.user = request.user
suggestion.save()
- mail_managers(u'Konsultacja planu wydawniczego na WolneLektury.pl', u'''\
-Zgłoszono nową sugestię nt. planu wydawniczego w serwisie WolneLektury.pl.
-%(url)s
+ if not suggestion.is_spam():
+ mail_managers(u'Konsultacja planu wydawniczego na WolneLektury.pl', u'''\
+ Zgłoszono nową sugestię nt. planu wydawniczego w serwisie WolneLektury.pl.
+ %(url)s
-Użytkownik: %(user)s
-Kontakt: %(contact)s
+ Użytkownik: %(user)s
+ Kontakt: %(contact)s
-Książki:
-%(books)s
+ Książki:
+ %(books)s
-Audiobooki:
-%(audiobooks)s''' % {
- 'url': request.build_absolute_uri(reverse('admin:suggest_suggestion_change', args=[suggestion.id])),
- 'user': str(request.user) if request.user.is_authenticated() else '',
- 'contact': contact,
- 'books': books,
- 'audiobooks': audiobooks,
+ Audiobooki:
+ %(audiobooks)s''' % {
+ 'url': request.build_absolute_uri(reverse('admin:suggest_suggestion_change', args=[suggestion.id])),
+ 'user': str(request.user) if request.user.is_authenticated() else '',
+ 'contact': contact,
+ 'books': books,
+ 'audiobooks': audiobooks,
}, fail_silently=True)
- try:
- validate_email(contact)
- except ValidationError:
- pass
- else:
- send_mail(
- u'[WolneLektury] ' + ugettext(u'Thank you for your suggestion.'),
- ugettext(u"""\
+ try:
+ validate_email(contact)
+ except ValidationError:
+ pass
+ else:
+ send_mail(
+ u'[WolneLektury] ' + ugettext(u'Thank you for your suggestion.'),
+ ugettext(u"""\
Thank you for your comment on WolneLektury.pl.
The suggestion has been referred to the project coordinator.""") +
- u"\n\n-- \n" + ugettext(u'''Message sent automatically. Please do not reply.'''),
- 'no-reply@wolnelektury.pl', [contact], fail_silently=True)
+ u"\n\n-- \n" + ugettext(u'''Message sent automatically. Please do not reply.'''),
+ 'no-reply@wolnelektury.pl', [contact], fail_silently=True)
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-03-08 11:33+0100\n"
"Last-Translator: \n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Description"
msgstr "Beschreibung"
-#: forms.py:49 forms.py:106
+#: forms.py:49 forms.py:110
msgid "Thank you for your suggestion."
msgstr "Vielen Dank für Ihren Vorschlag."
-#: forms.py:50 forms.py:107
+#: forms.py:50 forms.py:111
msgid ""
"Thank you for your comment on WolneLektury.pl.\n"
"The suggestion has been referred to the project coordinator."
"Vielen Dank für Ihren Kommentar zu WolneLekturz.pl\n"
"Ihr Kommentar ist an den Projekt - Koordinator weitergeleitet worden. "
-#: forms.py:53 forms.py:110
+#: forms.py:53 forms.py:114
msgid "Message sent automatically. Please do not reply."
msgstr ""
"Diese Nachricht wird automatisch generiert. Bitte sie nicht beantworten."
-#: forms.py:59 models.py:28
+#: forms.py:59 models.py:31
msgid "books"
msgstr "Bücher"
-#: forms.py:60 models.py:29
-msgid "audiobooks"
+#: forms.py:60
+#, fuzzy
+#| msgid "books"
+msgid "ebook"
+msgstr "Bücher"
+
+#: forms.py:61
+#, fuzzy
+#| msgid "audiobooks"
+msgid "audiobook"
msgstr "Audiobücher"
-#: forms.py:64
-msgid "One of these fields is required."
+#: forms.py:65
+#, fuzzy
+#| msgid "One of these fields is required."
+msgid "One of these options is required."
msgstr "Erfüllen Sie bitte ein von diesen Feldern. "
-#: models.py:11 models.py:27
+#: models.py:14 models.py:30
msgid "contact"
msgstr "Kontakt"
-#: models.py:12
+#: models.py:15
msgid "description"
msgstr "Beschreibung"
-#: models.py:13 models.py:30
+#: models.py:16 models.py:33
msgid "creation date"
msgstr "Erstellungsdatum"
-#: models.py:14 models.py:31
+#: models.py:17 models.py:34
msgid "IP address"
msgstr "IP-Adresse"
-#: models.py:19
+#: models.py:22
msgid "suggestion"
msgstr "Vorschlag"
-#: models.py:20
+#: models.py:23
msgid "suggestions"
msgstr "Vorschläge"
-#: models.py:36
+#: models.py:32
+msgid "audiobooks"
+msgstr "Audiobücher"
+
+#: models.py:39
msgid "publishing suggestion"
msgstr "Vorschlag publizieren"
-#: models.py:37
+#: models.py:40
msgid "publishing suggestions"
msgstr "Vorschläge publizieren"
msgid "I'd like to find in WolneLektury.pl these…"
msgstr "Ich würde gerne auf WolneLektury ... finden."
-#: templates/publishing_suggest.html:19 views.py:22
+#: templates/publishing_suggest.html:20 views.py:22
msgid "Send report"
msgstr "Bericht senden"
+#: templates/publishing_suggest.html:21
+msgid ""
+"Remember that we can only publish books in public domain, ie. 70 years after "
+"the death of the author!"
+msgstr ""
+
#: views.py:13 views.py:21
msgid "Report a bug or suggestion"
msgstr "Melden Sie einen Bug oder einen Vorschlag"
#: views.py:15 views.py:23
msgid "Report was sent successfully."
msgstr "Der Bericht wurde erfolgreich gesendet."
+
+#, fuzzy
+#~| msgid ""
+#~| "Thank you for your comment on WolneLektury.pl.\n"
+#~| "The suggestion has been referred to the project coordinator."
+#~ msgid ""
+#~ " Thank you for your comment on WolneLektury.pl.\n"
+#~ " The suggestion has been referred to the project coordinator."
+#~ msgstr ""
+#~ "Vielen Dank für Ihren Kommentar zu WolneLekturz.pl\n"
+#~ "Ihr Kommentar ist an den Projekt - Koordinator weitergeleitet worden. "
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-03-10 13:06+0100\n"
"Last-Translator: Kamil <kjaklukowski@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Description"
msgstr "Description"
-#: forms.py:49 forms.py:106
+#: forms.py:49 forms.py:110
msgid "Thank you for your suggestion."
msgstr "Thank you for your suggestion."
-#: forms.py:50 forms.py:107
+#: forms.py:50 forms.py:111
msgid ""
"Thank you for your comment on WolneLektury.pl.\n"
"The suggestion has been referred to the project coordinator."
"Thank you for your suggestion concerning WolneLektury.pl \n"
"Your suggestion was sent to the project coordinator."
-#: forms.py:53 forms.py:110
+#: forms.py:53 forms.py:114
msgid "Message sent automatically. Please do not reply."
msgstr "This message was sent automatically. Please do not reply."
-#: forms.py:59 models.py:28
+#: forms.py:59 models.py:31
msgid "books"
msgstr "books"
-#: forms.py:60 models.py:29
-msgid "audiobooks"
+#: forms.py:60
+#, fuzzy
+#| msgid "books"
+msgid "ebook"
+msgstr "books"
+
+#: forms.py:61
+#, fuzzy
+#| msgid "audiobooks"
+msgid "audiobook"
msgstr "audiobooks"
-#: forms.py:64
-msgid "One of these fields is required."
+#: forms.py:65
+#, fuzzy
+#| msgid "One of these fields is required."
+msgid "One of these options is required."
msgstr "One of these fields is required."
-#: models.py:11 models.py:27
+#: models.py:14 models.py:30
msgid "contact"
msgstr "Contact"
-#: models.py:12
+#: models.py:15
msgid "description"
msgstr "description"
-#: models.py:13 models.py:30
+#: models.py:16 models.py:33
msgid "creation date"
msgstr "creation date"
-#: models.py:14 models.py:31
+#: models.py:17 models.py:34
msgid "IP address"
msgstr "IP address"
-#: models.py:19
+#: models.py:22
msgid "suggestion"
msgstr "suggestion"
-#: models.py:20
+#: models.py:23
msgid "suggestions"
msgstr "suggestions"
-#: models.py:36
+#: models.py:32
+msgid "audiobooks"
+msgstr "audiobooks"
+
+#: models.py:39
msgid "publishing suggestion"
msgstr "publishing suggestion"
-#: models.py:37
+#: models.py:40
msgid "publishing suggestions"
msgstr "publishing suggestions"
msgid "I'd like to find in WolneLektury.pl these…"
msgstr "I would like to find the following items on WolneLektury.pl:"
-#: templates/publishing_suggest.html:19 views.py:22
+#: templates/publishing_suggest.html:20 views.py:22
msgid "Send report"
msgstr "send a suggestion"
+#: templates/publishing_suggest.html:21
+msgid ""
+"Remember that we can only publish books in public domain, ie. 70 years after "
+"the death of the author!"
+msgstr ""
+
#: views.py:13 views.py:21
msgid "Report a bug or suggestion"
msgstr "Report an error or make a suggestion"
#: views.py:15 views.py:23
msgid "Report was sent successfully."
msgstr "publishing suggestion"
+
+#, fuzzy
+#~| msgid ""
+#~| "Thank you for your comment on WolneLektury.pl.\n"
+#~| "The suggestion has been referred to the project coordinator."
+#~ msgid ""
+#~ " Thank you for your comment on WolneLektury.pl.\n"
+#~ " The suggestion has been referred to the project coordinator."
+#~ msgstr ""
+#~ "Thank you for your suggestion concerning WolneLektury.pl \n"
+#~ "Your suggestion was sent to the project coordinator."
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-02-18 13:20+0100\n"
"Last-Translator: Anna Jopp <aniajopp@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Description"
msgstr "Descripción"
-#: forms.py:49 forms.py:106
+#: forms.py:49 forms.py:110
msgid "Thank you for your suggestion."
msgstr "Gracias por tu sugerencia"
-#: forms.py:50 forms.py:107
+#: forms.py:50 forms.py:111
msgid ""
"Thank you for your comment on WolneLektury.pl.\n"
"The suggestion has been referred to the project coordinator."
"Gracias por tu comentario en WolneLektury.pl La sugerencia ha sido remitida "
"a el coordinador del proyecto"
-#: forms.py:53 forms.py:110
+#: forms.py:53 forms.py:114
msgid "Message sent automatically. Please do not reply."
msgstr "La mensaje enviado automaticamente. No conteste por favor."
-#: forms.py:59 models.py:28
+#: forms.py:59 models.py:31
msgid "books"
msgstr "libros"
-#: forms.py:60 models.py:29
-msgid "audiobooks"
+#: forms.py:60
+#, fuzzy
+#| msgid "books"
+msgid "ebook"
+msgstr "libros"
+
+#: forms.py:61
+#, fuzzy
+#| msgid "audiobooks"
+msgid "audiobook"
msgstr "audiolibros"
-#: forms.py:64
-msgid "One of these fields is required."
+#: forms.py:65
+#, fuzzy
+#| msgid "One of these fields is required."
+msgid "One of these options is required."
msgstr "Uno de estos campos es requerido"
-#: models.py:11 models.py:27
+#: models.py:14 models.py:30
msgid "contact"
msgstr "Contacto"
-#: models.py:12
+#: models.py:15
msgid "description"
msgstr "Descripción"
-#: models.py:13 models.py:30
+#: models.py:16 models.py:33
msgid "creation date"
msgstr "Fecha de creación"
-#: models.py:14 models.py:31
+#: models.py:17 models.py:34
msgid "IP address"
msgstr "Dirección IP"
-#: models.py:19
+#: models.py:22
msgid "suggestion"
msgstr "sugerencia"
-#: models.py:20
+#: models.py:23
msgid "suggestions"
msgstr "sugerencias"
-#: models.py:36
+#: models.py:32
+msgid "audiobooks"
+msgstr "audiolibros"
+
+#: models.py:39
msgid "publishing suggestion"
msgstr "Sugerencia de publicación"
-#: models.py:37
+#: models.py:40
msgid "publishing suggestions"
msgstr "Sugerencias de publicación"
msgid "I'd like to find in WolneLektury.pl these…"
msgstr "Me gustaría encontrar estos en WolneLektury.pl"
-#: templates/publishing_suggest.html:19 views.py:22
+#: templates/publishing_suggest.html:20 views.py:22
msgid "Send report"
msgstr "Envia un report"
+#: templates/publishing_suggest.html:21
+msgid ""
+"Remember that we can only publish books in public domain, ie. 70 years after "
+"the death of the author!"
+msgstr ""
+
#: views.py:13 views.py:21
msgid "Report a bug or suggestion"
msgstr "Reporta un error o una sugerencia"
#: views.py:15 views.py:23
msgid "Report was sent successfully."
msgstr "la noticia ha sido enviada con éxito "
+
+#, fuzzy
+#~| msgid ""
+#~| "Thank you for your comment on WolneLektury.pl.\n"
+#~| "The suggestion has been referred to the project coordinator."
+#~ msgid ""
+#~ " Thank you for your comment on WolneLektury.pl.\n"
+#~ " The suggestion has been referred to the project coordinator."
+#~ msgstr ""
+#~ "Gracias por tu comentario en WolneLektury.pl La sugerencia ha sido "
+#~ "remitida a el coordinador del proyecto"
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-02-23 17:55+0100\n"
"Last-Translator: Ela Janota <amarillis5@wp.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Description"
msgstr "Description"
-#: forms.py:49 forms.py:106
+#: forms.py:49 forms.py:110
msgid "Thank you for your suggestion."
msgstr "Merci pour votre suggestion."
-#: forms.py:50 forms.py:107
+#: forms.py:50 forms.py:111
msgid ""
"Thank you for your comment on WolneLektury.pl.\n"
"The suggestion has been referred to the project coordinator."
"Merci pour votre commentaire sur Wolne Lektury.pl.\n"
"Votre suggestion a été adressée au coordinateur du projet."
-#: forms.py:53 forms.py:110
+#: forms.py:53 forms.py:114
msgid "Message sent automatically. Please do not reply."
msgstr "Message envoyé automatiquement. Merci de n'y pas répondre."
-#: forms.py:59 models.py:28
+#: forms.py:59 models.py:31
msgid "books"
msgstr "livres"
-#: forms.py:60 models.py:29
-msgid "audiobooks"
+#: forms.py:60
+#, fuzzy
+#| msgid "books"
+msgid "ebook"
+msgstr "livres"
+
+#: forms.py:61
+#, fuzzy
+#| msgid "audiobooks"
+msgid "audiobook"
msgstr "livres audio"
-#: forms.py:64
-msgid "One of these fields is required."
+#: forms.py:65
+#, fuzzy
+#| msgid "One of these fields is required."
+msgid "One of these options is required."
msgstr "L'une des ces rubriques est obligatoire."
-#: models.py:11 models.py:27
+#: models.py:14 models.py:30
msgid "contact"
msgstr "contact"
-#: models.py:12
+#: models.py:15
msgid "description"
msgstr "description"
-#: models.py:13 models.py:30
+#: models.py:16 models.py:33
msgid "creation date"
msgstr "date de création"
-#: models.py:14 models.py:31
+#: models.py:17 models.py:34
msgid "IP address"
msgstr "adresse IP"
-#: models.py:19
+#: models.py:22
msgid "suggestion"
msgstr "suggestion"
-#: models.py:20
+#: models.py:23
msgid "suggestions"
msgstr "suggestions"
-#: models.py:36
+#: models.py:32
+msgid "audiobooks"
+msgstr "livres audio"
+
+#: models.py:39
msgid "publishing suggestion"
msgstr "suggestion sur publication"
-#: models.py:37
+#: models.py:40
msgid "publishing suggestions"
msgstr "suggestions sur publication"
msgid "I'd like to find in WolneLektury.pl these…"
msgstr "J'aimerais trouver dans Wolne Lektury.pl:..."
-#: templates/publishing_suggest.html:19 views.py:22
+#: templates/publishing_suggest.html:20 views.py:22
msgid "Send report"
msgstr "Envoyez un rapport"
+#: templates/publishing_suggest.html:21
+msgid ""
+"Remember that we can only publish books in public domain, ie. 70 years after "
+"the death of the author!"
+msgstr ""
+
#: views.py:13 views.py:21
msgid "Report a bug or suggestion"
msgstr "Rapportez une erreur ou faites une suggestion"
#: views.py:15 views.py:23
msgid "Report was sent successfully."
msgstr "Votre rapport a été envoyé"
+
+#, fuzzy
+#~| msgid ""
+#~| "Thank you for your comment on WolneLektury.pl.\n"
+#~| "The suggestion has been referred to the project coordinator."
+#~ msgid ""
+#~ " Thank you for your comment on WolneLektury.pl.\n"
+#~ " The suggestion has been referred to the project coordinator."
+#~ msgstr ""
+#~ "Merci pour votre commentaire sur Wolne Lektury.pl.\n"
+#~ "Votre suggestion a été adressée au coordinateur du projet."
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-02-21 17:57+0100\n"
"Last-Translator: xxx\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Description"
msgstr "Descrizione"
-#: forms.py:49 forms.py:106
+#: forms.py:49 forms.py:110
msgid "Thank you for your suggestion."
msgstr "Grazie per la sua proposta"
-#: forms.py:50 forms.py:107
+#: forms.py:50 forms.py:111
msgid ""
"Thank you for your comment on WolneLektury.pl.\n"
"The suggestion has been referred to the project coordinator."
"Grazie per il commento su WolneLektury.pl. La sua proposta è stata inviata "
"al coordinatore del progetto. // "
-#: forms.py:53 forms.py:110
+#: forms.py:53 forms.py:114
msgid "Message sent automatically. Please do not reply."
msgstr ""
"Il messaggio è stato inviato automaticamente. Si prega di non rispondere."
-#: forms.py:59 models.py:28
+#: forms.py:59 models.py:31
msgid "books"
msgstr "libri"
-#: forms.py:60 models.py:29
-msgid "audiobooks"
+#: forms.py:60
+#, fuzzy
+#| msgid "books"
+msgid "ebook"
+msgstr "libri"
+
+#: forms.py:61
+#, fuzzy
+#| msgid "audiobooks"
+msgid "audiobook"
msgstr "audiolibri"
-#: forms.py:64
-msgid "One of these fields is required."
+#: forms.py:65
+#, fuzzy
+#| msgid "One of these fields is required."
+msgid "One of these options is required."
msgstr "E' richiesto uno di questi campi. "
-#: models.py:11 models.py:27
+#: models.py:14 models.py:30
msgid "contact"
msgstr "contatto"
-#: models.py:12
+#: models.py:15
msgid "description"
msgstr "descrizione"
-#: models.py:13 models.py:30
+#: models.py:16 models.py:33
msgid "creation date"
msgstr "data di creazione"
-#: models.py:14 models.py:31
+#: models.py:17 models.py:34
msgid "IP address"
msgstr "Indirizzo IP"
-#: models.py:19
+#: models.py:22
msgid "suggestion"
msgstr "proposta"
-#: models.py:20
+#: models.py:23
msgid "suggestions"
msgstr "proposte"
-#: models.py:36
+#: models.py:32
+msgid "audiobooks"
+msgstr "audiolibri"
+
+#: models.py:39
msgid "publishing suggestion"
msgstr "pubblica la proposta"
-#: models.py:37
+#: models.py:40
msgid "publishing suggestions"
msgstr "pubblica le proposte"
msgid "I'd like to find in WolneLektury.pl these…"
msgstr "Vorrei trovare in WolneLektury.pl questo..."
-#: templates/publishing_suggest.html:19 views.py:22
+#: templates/publishing_suggest.html:20 views.py:22
msgid "Send report"
msgstr "Invia una notifica"
+#: templates/publishing_suggest.html:21
+msgid ""
+"Remember that we can only publish books in public domain, ie. 70 years after "
+"the death of the author!"
+msgstr ""
+
#: views.py:13 views.py:21
msgid "Report a bug or suggestion"
msgstr " Segnala un'errore o un proposta"
#: views.py:15 views.py:23
msgid "Report was sent successfully."
msgstr "La notifica è stata inviata con successo."
+
+#, fuzzy
+#~| msgid ""
+#~| "Thank you for your comment on WolneLektury.pl.\n"
+#~| "The suggestion has been referred to the project coordinator."
+#~ msgid ""
+#~ " Thank you for your comment on WolneLektury.pl.\n"
+#~ " The suggestion has been referred to the project coordinator."
+#~ msgstr ""
+#~ "Grazie per il commento su WolneLektury.pl. La sua proposta è stata "
+#~ "inviata al coordinatore del progetto. // "
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-03-02 18:19+0100\n"
"Last-Translator: Karolina Zuber <suomija@o2.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Description"
msgstr "Aprašymas"
-#: forms.py:49 forms.py:106
+#: forms.py:49 forms.py:110
msgid "Thank you for your suggestion."
msgstr "Ačiū už jūsų pasiūlymą."
-#: forms.py:50 forms.py:107
+#: forms.py:50 forms.py:111
msgid ""
"Thank you for your comment on WolneLektury.pl.\n"
"The suggestion has been referred to the project coordinator."
"Ačiū už jūsų komentarą WolneLektury.pl interneto svetainėje \n"
"Pasiūlymas buvo pateiktas projekto koordinatoriui."
-#: forms.py:53 forms.py:110
+#: forms.py:53 forms.py:114
msgid "Message sent automatically. Please do not reply."
msgstr "Tai automatiškai sugeneruotas laiškas. Prašome į jį neatsakyti."
-#: forms.py:59 models.py:28
+#: forms.py:59 models.py:31
msgid "books"
msgstr "knygas"
-#: forms.py:60 models.py:29
-msgid "audiobooks"
+#: forms.py:60
+#, fuzzy
+#| msgid "books"
+msgid "ebook"
+msgstr "knygas"
+
+#: forms.py:61
+#, fuzzy
+#| msgid "audiobooks"
+msgid "audiobook"
msgstr "audio knygas"
-#: forms.py:64
-msgid "One of these fields is required."
+#: forms.py:65
+#, fuzzy
+#| msgid "One of these fields is required."
+msgid "One of these options is required."
msgstr "Vienas iš šių laukelių yra reikalaujamas."
-#: models.py:11 models.py:27
+#: models.py:14 models.py:30
msgid "contact"
msgstr "kontaktas"
-#: models.py:12
+#: models.py:15
msgid "description"
msgstr "aprašymas"
-#: models.py:13 models.py:30
+#: models.py:16 models.py:33
msgid "creation date"
msgstr "sukūrimo data"
-#: models.py:14 models.py:31
+#: models.py:17 models.py:34
msgid "IP address"
msgstr "IP adresas"
-#: models.py:19
+#: models.py:22
msgid "suggestion"
msgstr "pasiūlymas"
-#: models.py:20
+#: models.py:23
msgid "suggestions"
msgstr "pasiūlymai"
-#: models.py:36
+#: models.py:32
+msgid "audiobooks"
+msgstr "audio knygas"
+
+#: models.py:39
msgid "publishing suggestion"
msgstr "publikavimo pasiūlymas"
-#: models.py:37
+#: models.py:40
msgid "publishing suggestions"
msgstr "publikavimo pasiūlymai"
msgid "I'd like to find in WolneLektury.pl these…"
msgstr "Interneto svetainėje WolneLektury.pl norėčiau rasti šias..."
-#: templates/publishing_suggest.html:19 views.py:22
+#: templates/publishing_suggest.html:20 views.py:22
msgid "Send report"
msgstr "Siųsti pranešimą"
+#: templates/publishing_suggest.html:21
+msgid ""
+"Remember that we can only publish books in public domain, ie. 70 years after "
+"the death of the author!"
+msgstr ""
+
#: views.py:13 views.py:21
msgid "Report a bug or suggestion"
msgstr "Praneškite apie klaidą arba teikite pasiūlymus"
#: views.py:15 views.py:23
msgid "Report was sent successfully."
msgstr "Pranešimas sėkmingai išsiųstas."
+
+#, fuzzy
+#~| msgid ""
+#~| "Thank you for your comment on WolneLektury.pl.\n"
+#~| "The suggestion has been referred to the project coordinator."
+#~ msgid ""
+#~ " Thank you for your comment on WolneLektury.pl.\n"
+#~ " The suggestion has been referred to the project coordinator."
+#~ msgstr ""
+#~ "Ačiū už jūsų komentarą WolneLektury.pl interneto svetainėje \n"
+#~ "Pasiūlymas buvo pateiktas projekto koordinatoriui."
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: 2011-06-09 13:06+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Description"
msgstr "Opis"
-#: forms.py:49 forms.py:106
+#: forms.py:49 forms.py:110
msgid "Thank you for your suggestion."
msgstr "Dziękujemy za zgłoszenie."
-#: forms.py:50 forms.py:107
+#: forms.py:50 forms.py:111
msgid ""
"Thank you for your comment on WolneLektury.pl.\n"
"The suggestion has been referred to the project coordinator."
"Dziękujemy za zgłoszenie uwag do serwisu Wolne Lektury.\n"
"Sugestia została przekazana koordynatorce projektu."
-#: forms.py:53 forms.py:110
+#: forms.py:53 forms.py:114
msgid "Message sent automatically. Please do not reply."
msgstr "Wiadomość wysłana automatycznie. Proszę nie odpowiadać."
-#: forms.py:59 models.py:28
+#: forms.py:59 models.py:31
msgid "books"
msgstr "książki"
-#: forms.py:60 models.py:29
-msgid "audiobooks"
-msgstr "audiobooki"
+#: forms.py:60
+msgid "ebook"
+msgstr "ebook"
+
+#: forms.py:61
+msgid "audiobook"
+msgstr "audiobook"
-#: forms.py:64
-msgid "One of these fields is required."
-msgstr "Proszę wypełnić co najmniej jedno z tych pól."
+#: forms.py:65
+msgid "One of these options is required."
+msgstr "Proszę zaznaczyć co najmniej jedną opcję."
-#: models.py:11 models.py:27
+#: models.py:14 models.py:30
msgid "contact"
msgstr "kontakt"
-#: models.py:12
+#: models.py:15
msgid "description"
msgstr "opis"
-#: models.py:13 models.py:30
+#: models.py:16 models.py:33
msgid "creation date"
msgstr "data utworzenia"
-#: models.py:14 models.py:31
+#: models.py:17 models.py:34
msgid "IP address"
msgstr "adres IP"
-#: models.py:19
+#: models.py:22
msgid "suggestion"
msgstr "sugestia"
-#: models.py:20
+#: models.py:23
msgid "suggestions"
msgstr "sugestie"
-#: models.py:36
+#: models.py:32
+msgid "audiobooks"
+msgstr "audiobooki"
+
+#: models.py:39
msgid "publishing suggestion"
msgstr "sugestia publikacji"
-#: models.py:37
+#: models.py:40
msgid "publishing suggestions"
msgstr "sugestie publikacji"
msgid "I'd like to find in WolneLektury.pl these…"
msgstr "Chciałabym/chciałbym znaleźć w bibliotece Wolne Lektury następujące"
-#: templates/publishing_suggest.html:19 views.py:22
+#: templates/publishing_suggest.html:20 views.py:22
msgid "Send report"
msgstr "Wyślij zgłoszenie"
+#: templates/publishing_suggest.html:21
+msgid ""
+"Remember that we can only publish books in public domain, ie. 70 years after "
+"the death of the author!"
+msgstr ""
+"Pamiętaj, że możemy publikować jedynie książki w domenie publicznej, czyli "
+"70 lat po śmierci autora!"
+
#: views.py:13 views.py:21
msgid "Report a bug or suggestion"
msgstr "Zgłoś błąd lub sugestię"
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-03-04 22:11+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Description"
msgstr "Описание"
-#: forms.py:49 forms.py:106
+#: forms.py:49 forms.py:110
msgid "Thank you for your suggestion."
msgstr "Спасибо за Ваше предложение."
-#: forms.py:50 forms.py:107
+#: forms.py:50 forms.py:111
msgid ""
"Thank you for your comment on WolneLektury.pl.\n"
"The suggestion has been referred to the project coordinator."
"Спасибо за Ваш комментарий на WolneLektury.pl. \n"
"Предложение было передано координатору проекта."
-#: forms.py:53 forms.py:110
+#: forms.py:53 forms.py:114
msgid "Message sent automatically. Please do not reply."
msgstr "Сообщение отправлено автоматически. Пожалуйста, не отвечайте."
-#: forms.py:59 models.py:28
+#: forms.py:59 models.py:31
msgid "books"
msgstr "книги"
-#: forms.py:60 models.py:29
-msgid "audiobooks"
+#: forms.py:60
+#, fuzzy
+#| msgid "books"
+msgid "ebook"
+msgstr "книги"
+
+#: forms.py:61
+#, fuzzy
+#| msgid "audiobooks"
+msgid "audiobook"
msgstr "аудиокниги"
-#: forms.py:64
-msgid "One of these fields is required."
+#: forms.py:65
+#, fuzzy
+#| msgid "One of these fields is required."
+msgid "One of these options is required."
msgstr "Требуется одно из этих полей."
-#: models.py:11 models.py:27
+#: models.py:14 models.py:30
msgid "contact"
msgstr "контакт"
-#: models.py:12
+#: models.py:15
msgid "description"
msgstr "описание"
-#: models.py:13 models.py:30
+#: models.py:16 models.py:33
msgid "creation date"
msgstr "дата создания"
-#: models.py:14 models.py:31
+#: models.py:17 models.py:34
msgid "IP address"
msgstr "IP-адрес"
-#: models.py:19
+#: models.py:22
msgid "suggestion"
msgstr "предложение"
-#: models.py:20
+#: models.py:23
msgid "suggestions"
msgstr "предложения"
-#: models.py:36
+#: models.py:32
+msgid "audiobooks"
+msgstr "аудиокниги"
+
+#: models.py:39
msgid "publishing suggestion"
msgstr "издательское предложение"
-#: models.py:37
+#: models.py:40
msgid "publishing suggestions"
msgstr "издательские предложения"
msgid "I'd like to find in WolneLektury.pl these…"
msgstr "Я хотел/а бы найти на сайте WolneLektury.pl этих..."
-#: templates/publishing_suggest.html:19 views.py:22
+#: templates/publishing_suggest.html:20 views.py:22
msgid "Send report"
msgstr "Отправить отчет"
+#: templates/publishing_suggest.html:21
+msgid ""
+"Remember that we can only publish books in public domain, ie. 70 years after "
+"the death of the author!"
+msgstr ""
+
#: views.py:13 views.py:21
msgid "Report a bug or suggestion"
msgstr "Сообщитe об ошибке или предложении"
#: views.py:15 views.py:23
msgid "Report was sent successfully."
msgstr "Отчет отправлен успешно."
+
+#, fuzzy
+#~| msgid ""
+#~| "Thank you for your comment on WolneLektury.pl.\n"
+#~| "The suggestion has been referred to the project coordinator."
+#~ msgid ""
+#~ " Thank you for your comment on WolneLektury.pl.\n"
+#~ " The suggestion has been referred to the project coordinator."
+#~ msgstr ""
+#~ "Спасибо за Ваш комментарий на WolneLektury.pl. \n"
+#~ "Предложение было передано координатору проекта."
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-03-04 17:31+0100\n"
"Last-Translator: xxx <xxx>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Description"
msgstr "Опис"
-#: forms.py:49 forms.py:106
+#: forms.py:49 forms.py:110
msgid "Thank you for your suggestion."
msgstr "Дякуємо за Ваші пропозиції."
-#: forms.py:50 forms.py:107
+#: forms.py:50 forms.py:111
msgid ""
"Thank you for your comment on WolneLektury.pl.\n"
"The suggestion has been referred to the project coordinator."
"Дякуємо за Ваш коментар на WolneLektury.pl.\n"
"Вашу пропозицію передано координатору проекту."
-#: forms.py:53 forms.py:110
+#: forms.py:53 forms.py:114
msgid "Message sent automatically. Please do not reply."
msgstr "Повідомлення надіслано автоматично. Просимо не відповідати."
-#: forms.py:59 models.py:28
+#: forms.py:59 models.py:31
msgid "books"
msgstr "книжки"
-#: forms.py:60 models.py:29
-msgid "audiobooks"
+#: forms.py:60
+#, fuzzy
+#| msgid "books"
+msgid "ebook"
+msgstr "книжки"
+
+#: forms.py:61
+#, fuzzy
+#| msgid "audiobooks"
+msgid "audiobook"
msgstr "аудіокниги"
-#: forms.py:64
+#: forms.py:65
#, fuzzy
-msgid "One of these fields is required."
+msgid "One of these options is required."
msgstr "Одне з цих полів є обов'язковим."
-#: models.py:11 models.py:27
+#: models.py:14 models.py:30
msgid "contact"
msgstr "контакт"
-#: models.py:12
+#: models.py:15
msgid "description"
msgstr "опис"
-#: models.py:13 models.py:30
+#: models.py:16 models.py:33
msgid "creation date"
msgstr "дата створення"
-#: models.py:14 models.py:31
+#: models.py:17 models.py:34
msgid "IP address"
msgstr "IP-адреса"
-#: models.py:19
+#: models.py:22
msgid "suggestion"
msgstr "пропозиція"
-#: models.py:20
+#: models.py:23
msgid "suggestions"
msgstr "пропозиції"
-#: models.py:36
+#: models.py:32
+msgid "audiobooks"
+msgstr "аудіокниги"
+
+#: models.py:39
msgid "publishing suggestion"
msgstr "пропозиція публікації"
-#: models.py:37
+#: models.py:40
msgid "publishing suggestions"
msgstr "пропозиції публікацій"
msgid "I'd like to find in WolneLektury.pl these…"
msgstr "Я хотів би/хотіла би знайти на сайті WolneLektury.pl наступні..."
-#: templates/publishing_suggest.html:19 views.py:22
+#: templates/publishing_suggest.html:20 views.py:22
msgid "Send report"
msgstr "Вислати повідомлення"
+#: templates/publishing_suggest.html:21
+msgid ""
+"Remember that we can only publish books in public domain, ie. 70 years after "
+"the death of the author!"
+msgstr ""
+
#: views.py:13 views.py:21
msgid "Report a bug or suggestion"
msgstr "Повідомити про помилку або надіслати пропозицію"
#: views.py:15 views.py:23
msgid "Report was sent successfully."
msgstr "Ваше повідомлення надіслано успішно."
+
+#, fuzzy
+#~| msgid ""
+#~| "Thank you for your comment on WolneLektury.pl.\n"
+#~| "The suggestion has been referred to the project coordinator."
+#~ msgid ""
+#~ " Thank you for your comment on WolneLektury.pl.\n"
+#~ " The suggestion has been referred to the project coordinator."
+#~ msgstr ""
+#~ "Дякуємо за Ваш коментар на WolneLektury.pl.\n"
+#~ "Вашу пропозицію передано координатору проекту."
# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
+import re
+from datetime import timedelta
+
from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _
verbose_name = _('publishing suggestion')
verbose_name_plural = _('publishing suggestions')
+ def is_spam(self):
+ suggestion_text = (self.books or self.audiobooks).strip(' \r\n,')
+ # similar = PublishingSuggestion.objects.filter(
+ # books__in=('', suggestion_text), audiobooks__in=('', suggestion_text))
+ similar = PublishingSuggestion.objects.filter(books=self.books, audiobooks=self.audiobooks).exclude(pk=self.pk)
+ http = 'http' in suggestion_text
+ spam = False
+ if re.search(r'([^\W\d_])\1\1\1', suggestion_text):
+ # same letter repetition outside URL
+ spam = True
+ elif re.search(r'[^\W\d_]\d|\d[^\W\d_]', suggestion_text) and not http:
+ # string of letters and digits outside URL
+ spam = True
+ elif re.search(r'[^\W\d_]{17}', suggestion_text):
+ # long string of letters (usually gibberish)
+ spam = True
+ elif ' ' not in suggestion_text:
+ # single word - usually spam
+ spam = True
+ elif len(suggestion_text) < 11:
+ # too short
+ spam = True
+ elif similar.filter(created_at__range=(self.created_at - timedelta(1), self.created_at)):
+ # the same suggestion within 24h
+ spam = True
+ elif similar.filter(ip=self.ip):
+ # the same suggestion from the same IP
+ spam = True
+ return spam
+
def __unicode__(self):
return unicode(self.created_at)
<li>{% trans "I'd like to find in WolneLektury.pl these…" %}</li>
- <li><span class="error">{{ form.books.errors }}</span><label for="id_books">{{ form.books.label }}:</label> {{ form.books }}</li>
+ <li><label for="id_books">{{ form.books.label }}:</label> {{ form.books }}</li>
- <li><span class="error">{{ form.audiobooks.errors }}</span><label for="id_audiobooks">{{ form.audiobooks.label }}:</label> {{ form.audiobooks }}</li>
+ <li class="checkbox"><span class="error">{{ form.ebook.errors }}</span><label for="id_ebook">{{ form.ebook.label }}:</label> {{ form.ebook }}</li>
+ <li class="checkbox"><span class="error">{{ form.audiobook.errors }}</span><label for="id_audiobook">{{ form.audiobook.label }}:</label> {{ form.audiobook }}</li>
<li><input type="submit" value="{% trans "Send report" %}"/></li>
+ <li>{% trans "Remember that we can only publish books in public domain, ie. 70 years after the death of the author!" %}</li>
</ol>
</form>
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-03-22 15:54+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-08-14 17:50+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language: de\n"
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2016-02-01 09:36+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-08-14 17:50+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language: en\n"
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-08-14 17:50+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language: es\n"
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-03-22 14:23+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-03-22 14:23+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: it\n"
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-08-14 17:50+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language: lt\n"
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2013-04-09 15:46+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language: pl\n"
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-03-22 14:23+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: ru\n"
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2016-02-01 09:36+0100\n"
+"POT-Creation-Date: 2016-03-30 13:22+0200\n"
"PO-Revision-Date: 2012-08-14 17:49+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language: uk\n"
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:43+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: \n"
"einzuloggen. Wenn es aus Versehen passiert ist, gehen Sie bitte <a href="
"\"%(login_url)s\">Registrieren</a> voran."
-#: templates/superbase.html:21
+#: templates/superbase.html:23
msgid "Wolne Lektury"
msgstr "in WolneLektury.pl"
-#: templates/superbase.html:51
-#, python-format
+#: templates/superbase.html:54
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free reading you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
+#| msgid_plural ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free readings you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
msgid ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free reading you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free reading you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgid_plural ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free readings you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free readings you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgstr[0] ""
"\n"
"Sie haben <a href='%(b)s'>%(c)s</a> freies Werk <a href='%(r)s'>zur "
"Verfügung</a>\n"
" "
-#: templates/superbase.html:61
+#: templates/superbase.html:64
#, fuzzy
#| msgid "Language versions"
msgid "Language"
msgstr "Sprachversionen"
-#: templates/superbase.html:85
+#: templates/superbase.html:90
#, fuzzy
msgid "My shelf"
msgstr "Mein Bücherregal"
-#: templates/superbase.html:88
+#: templates/superbase.html:94
msgid "Administration"
msgstr "Administration"
-#: templates/superbase.html:90
+#: templates/superbase.html:100
msgid "Logout"
msgstr "Ausloggen"
-#: templates/superbase.html:93 views.py:67 views.py:68
+#: templates/superbase.html:104 views.py:67 views.py:68
msgid "Sign in"
msgstr "Einloggen"
-#: templates/superbase.html:93 views.py:86 views.py:87 views.py:115
+#: templates/superbase.html:106 views.py:86 views.py:87 views.py:115
msgid "Register"
msgstr "Registrieren"
-#: templates/superbase.html:100
+#: templates/superbase.html:113
msgid "Literature"
msgstr ""
-#: templates/superbase.html:101
+#: templates/superbase.html:114
msgid "Themes"
msgstr "Motive"
-#: templates/superbase.html:102
+#: templates/superbase.html:115
msgid "Audiobooks"
msgstr "Audiobücher"
-#: templates/superbase.html:103
+#: templates/superbase.html:116
msgid "Gallery"
msgstr ""
-#: templates/superbase.html:114
+#: templates/superbase.html:128
msgid "Search"
msgstr "Suchen"
-#: templates/superbase.html:142
+#: templates/superbase.html:162
msgid "Close"
msgstr "Schließen"
-#: templates/superbase.html:144
+#: templates/superbase.html:164
msgid "Loading"
msgstr "Laden"
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:43+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"\">sign in</a>."
msgstr ""
-#: templates/superbase.html:21
+#: templates/superbase.html:23
msgid "Wolne Lektury"
msgstr "Wolne Lektury"
-#: templates/superbase.html:51
-#, python-format
+#: templates/superbase.html:54
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free reading you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
+#| msgid_plural ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free readings you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
msgid ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free reading you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free reading you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgid_plural ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free readings you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free readings you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgstr[0] ""
"\n"
" <a href='%(b)s'>%(c)s</a> free reading you have <a "
"href='%(r)s'>right to</a>\n"
" "
-#: templates/superbase.html:61
+#: templates/superbase.html:64
#, fuzzy
#| msgid "Language versions"
msgid "Language"
msgstr "Language versions"
-#: templates/superbase.html:85
+#: templates/superbase.html:90
msgid "My shelf"
msgstr "My shelf"
-#: templates/superbase.html:88
+#: templates/superbase.html:94
msgid "Administration"
msgstr "Administration"
-#: templates/superbase.html:90
+#: templates/superbase.html:100
msgid "Logout"
msgstr "Logout"
-#: templates/superbase.html:93 views.py:67 views.py:68
+#: templates/superbase.html:104 views.py:67 views.py:68
msgid "Sign in"
msgstr "Sign in"
-#: templates/superbase.html:93 views.py:86 views.py:87 views.py:115
+#: templates/superbase.html:106 views.py:86 views.py:87 views.py:115
msgid "Register"
msgstr "Register"
-#: templates/superbase.html:100
+#: templates/superbase.html:113
msgid "Literature"
msgstr ""
-#: templates/superbase.html:101
+#: templates/superbase.html:114
msgid "Themes"
msgstr "Themes"
-#: templates/superbase.html:102
+#: templates/superbase.html:115
msgid "Audiobooks"
msgstr "Audiobooks"
-#: templates/superbase.html:103
+#: templates/superbase.html:116
msgid "Gallery"
msgstr ""
-#: templates/superbase.html:114
+#: templates/superbase.html:128
msgid "Search"
msgstr "Search"
-#: templates/superbase.html:142
+#: templates/superbase.html:162
msgid "Close"
msgstr "Close"
-#: templates/superbase.html:144
+#: templates/superbase.html:164
msgid "Loading"
msgstr "Loading"
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:43+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"cuentas de usuario existentes. Si se ha equivocado, pase a<a href="
"\"%(login_url)s\">sign in</a>, por favor."
-#: templates/superbase.html:21
+#: templates/superbase.html:23
msgid "Wolne Lektury"
msgstr "Regístrate en WolneLektury.pl"
-#: templates/superbase.html:51
-#, python-format
+#: templates/superbase.html:54
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free reading you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
+#| msgid_plural ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free readings you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
msgid ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free reading you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free reading you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgid_plural ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free readings you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free readings you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgstr[0] ""
"\n"
" <a href='%(b)s'>%(c)s</a> tienes lecturas libres <a "
"href='%(r)s'>right to</a>\n"
" "
-#: templates/superbase.html:61
+#: templates/superbase.html:64
#, fuzzy
#| msgid "Language versions"
msgid "Language"
msgstr "Versiones de idiomas"
-#: templates/superbase.html:85
+#: templates/superbase.html:90
msgid "My shelf"
msgstr "Mi estante"
-#: templates/superbase.html:88
+#: templates/superbase.html:94
msgid "Administration"
msgstr "Administración"
-#: templates/superbase.html:90
+#: templates/superbase.html:100
msgid "Logout"
msgstr "Cerrar sesión"
-#: templates/superbase.html:93 views.py:67 views.py:68
+#: templates/superbase.html:104 views.py:67 views.py:68
msgid "Sign in"
msgstr "Iniciar sesión"
-#: templates/superbase.html:93 views.py:86 views.py:87 views.py:115
+#: templates/superbase.html:106 views.py:86 views.py:87 views.py:115
msgid "Register"
msgstr "Registrarse"
-#: templates/superbase.html:100
+#: templates/superbase.html:113
msgid "Literature"
msgstr ""
-#: templates/superbase.html:101
+#: templates/superbase.html:114
msgid "Themes"
msgstr "Temas"
-#: templates/superbase.html:102
+#: templates/superbase.html:115
msgid "Audiobooks"
msgstr "Audiolibros"
-#: templates/superbase.html:103
+#: templates/superbase.html:116
msgid "Gallery"
msgstr ""
-#: templates/superbase.html:114
+#: templates/superbase.html:128
msgid "Search"
msgstr "Buscar"
-#: templates/superbase.html:142
+#: templates/superbase.html:162
msgid "Close"
msgstr "Cerrar"
-#: templates/superbase.html:144
+#: templates/superbase.html:164
msgid "Loading"
msgstr "Cargando"
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:43+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"\">sign in</a>."
msgstr ""
-#: templates/superbase.html:21
+#: templates/superbase.html:23
msgid "Wolne Lektury"
msgstr "Wolne Lektury (Lectures Libres)"
-#: templates/superbase.html:51
-#, python-format
+#: templates/superbase.html:54
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free reading you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
+#| msgid_plural ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free readings you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
msgid ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free reading you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free reading you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgid_plural ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free readings you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free readings you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgstr[0] ""
"\n"
" <a href='%(b)s'>%(c)s</a> lecture gratuite <a "
"href='%(r)s'>auxquelles vous avez droit</a>\n"
" "
-#: templates/superbase.html:61
+#: templates/superbase.html:64
#, fuzzy
#| msgid "Language versions"
msgid "Language"
msgstr "Version linguistique"
-#: templates/superbase.html:85
+#: templates/superbase.html:90
msgid "My shelf"
msgstr "Mon étagère"
-#: templates/superbase.html:88
+#: templates/superbase.html:94
msgid "Administration"
msgstr "Administration"
-#: templates/superbase.html:90
+#: templates/superbase.html:100
msgid "Logout"
msgstr "Déconnexion"
-#: templates/superbase.html:93 views.py:67 views.py:68
+#: templates/superbase.html:104 views.py:67 views.py:68
msgid "Sign in"
msgstr "Connexion"
-#: templates/superbase.html:93 views.py:86 views.py:87 views.py:115
+#: templates/superbase.html:106 views.py:86 views.py:87 views.py:115
msgid "Register"
msgstr "Inscrivez-vous"
-#: templates/superbase.html:100
+#: templates/superbase.html:113
msgid "Literature"
msgstr ""
-#: templates/superbase.html:101
+#: templates/superbase.html:114
msgid "Themes"
msgstr "Thèmes"
-#: templates/superbase.html:102
+#: templates/superbase.html:115
msgid "Audiobooks"
msgstr "Livres audio"
-#: templates/superbase.html:103
+#: templates/superbase.html:116
msgid "Gallery"
msgstr ""
-#: templates/superbase.html:114
+#: templates/superbase.html:128
msgid "Search"
msgstr "Rechercher"
-#: templates/superbase.html:142
+#: templates/superbase.html:162
msgid "Close"
msgstr "Fermer"
-#: templates/superbase.html:144
+#: templates/superbase.html:164
msgid "Loading"
msgstr "Chargement en cours"
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:43+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"\">sign in</a>."
msgstr ""
-#: templates/superbase.html:21
+#: templates/superbase.html:23
msgid "Wolne Lektury"
msgstr "Wolne Lektury"
-#: templates/superbase.html:51
-#, python-format
+#: templates/superbase.html:54
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free reading you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
+#| msgid_plural ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free readings you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
msgid ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free reading you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free reading you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgid_plural ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free readings you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free readings you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgstr[0] ""
"\n"
" <a href='%(b)s'>%(c)s</a> hai una lettura libera <a "
"href='%(r)s'>right to</a>\n"
" "
-#: templates/superbase.html:61
+#: templates/superbase.html:64
#, fuzzy
#| msgid "Language versions"
msgid "Language"
msgstr "Versioni in altre lingue"
-#: templates/superbase.html:85
+#: templates/superbase.html:90
msgid "My shelf"
msgstr "Il mio scaffale"
-#: templates/superbase.html:88
+#: templates/superbase.html:94
msgid "Administration"
msgstr "Amministrazione"
-#: templates/superbase.html:90
+#: templates/superbase.html:100
msgid "Logout"
msgstr "Esci"
-#: templates/superbase.html:93 views.py:67 views.py:68
+#: templates/superbase.html:104 views.py:67 views.py:68
msgid "Sign in"
msgstr "Accedi"
-#: templates/superbase.html:93 views.py:86 views.py:87 views.py:115
+#: templates/superbase.html:106 views.py:86 views.py:87 views.py:115
msgid "Register"
msgstr "Registrati"
-#: templates/superbase.html:100
+#: templates/superbase.html:113
msgid "Literature"
msgstr ""
-#: templates/superbase.html:101
+#: templates/superbase.html:114
msgid "Themes"
msgstr "Temi"
-#: templates/superbase.html:102
+#: templates/superbase.html:115
msgid "Audiobooks"
msgstr "Audiolibri"
-#: templates/superbase.html:103
+#: templates/superbase.html:116
msgid "Gallery"
msgstr ""
-#: templates/superbase.html:114
+#: templates/superbase.html:128
msgid "Search"
msgstr "Cerca"
-#: templates/superbase.html:142
+#: templates/superbase.html:162
msgid "Close"
msgstr "Chiudi"
-#: templates/superbase.html:144
+#: templates/superbase.html:164
msgid "Loading"
msgstr "Caricamento"
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:43+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"viena iš jūsų egzistuojančių paskyrų. Jei įvyko klaida, prašome pradėti čia "
"<a href=\"%(login_url)s\">sign in</a>."
-#: templates/superbase.html:21
+#: templates/superbase.html:23
msgid "Wolne Lektury"
msgstr "Wolne Lektury"
-#: templates/superbase.html:51
-#, python-format
+#: templates/superbase.html:54
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free reading you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
+#| msgid_plural ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free readings you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
msgid ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free reading you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free reading you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgid_plural ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free readings you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free readings you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgstr[0] ""
"\n"
" <a href='%(b)s'>%(c)s</a> nemokamas kūrinys į kurį <a "
"href='%(r)s'>turite teisę</a>\n"
" "
-#: templates/superbase.html:61
+#: templates/superbase.html:64
#, fuzzy
#| msgid "Language versions"
msgid "Language"
msgstr "Kalbų versijos"
-#: templates/superbase.html:85
+#: templates/superbase.html:90
msgid "My shelf"
msgstr "Mano lentyna"
-#: templates/superbase.html:88
+#: templates/superbase.html:94
msgid "Administration"
msgstr "Administracija "
-#: templates/superbase.html:90
+#: templates/superbase.html:100
msgid "Logout"
msgstr "Atsijungti"
-#: templates/superbase.html:93 views.py:67 views.py:68
+#: templates/superbase.html:104 views.py:67 views.py:68
msgid "Sign in"
msgstr "Prisijungti "
-#: templates/superbase.html:93 views.py:86 views.py:87 views.py:115
+#: templates/superbase.html:106 views.py:86 views.py:87 views.py:115
msgid "Register"
msgstr "Registruotis "
-#: templates/superbase.html:100
+#: templates/superbase.html:113
msgid "Literature"
msgstr ""
-#: templates/superbase.html:101
+#: templates/superbase.html:114
msgid "Themes"
msgstr "Motyvai"
-#: templates/superbase.html:102
+#: templates/superbase.html:115
msgid "Audiobooks"
msgstr "Audio knygos"
-#: templates/superbase.html:103
+#: templates/superbase.html:116
msgid "Gallery"
msgstr ""
-#: templates/superbase.html:114
+#: templates/superbase.html:128
msgid "Search"
msgstr "Ieškoti"
-#: templates/superbase.html:142
+#: templates/superbase.html:162
msgid "Close"
msgstr "Uždaryti"
-#: templates/superbase.html:144
+#: templates/superbase.html:164
msgid "Loading"
msgstr "Kraunasi"
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 <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: \n"
"Logowanie przy użyciu zewnętrznego konta zostało anulowane. Jeśli był to "
"błąd, przejdź do <a href=\"%(login_url)s\">strony logowania</a>."
-#: templates/superbase.html:21
+#: templates/superbase.html:23
msgid "Wolne Lektury"
msgstr "Wolne Lektury"
-#: templates/superbase.html:51
+#: templates/superbase.html:54
#, python-format
msgid ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free reading you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free reading you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgid_plural ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free readings you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free readings you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgstr[0] ""
"\n"
" <a href='%(b)s'>%(c)s</a> darmowy utwór do której <a "
"<a href='%(r)s'>masz prawo</a>\n"
" "
-#: templates/superbase.html:61
+#: templates/superbase.html:64
msgid "Language"
msgstr "Język"
-#: templates/superbase.html:85
+#: templates/superbase.html:90
msgid "My shelf"
msgstr "Moja półka"
-#: templates/superbase.html:88
+#: templates/superbase.html:94
msgid "Administration"
msgstr "Administracja"
-#: templates/superbase.html:90
+#: templates/superbase.html:100
msgid "Logout"
msgstr "Wyloguj"
-#: templates/superbase.html:93 views.py:67 views.py:68
+#: templates/superbase.html:104 views.py:67 views.py:68
msgid "Sign in"
msgstr "Zaloguj się"
-#: templates/superbase.html:93 views.py:86 views.py:87 views.py:115
+#: templates/superbase.html:106 views.py:86 views.py:87 views.py:115
msgid "Register"
msgstr "Załóż konto"
-#: templates/superbase.html:100
+#: templates/superbase.html:113
msgid "Literature"
msgstr "Literatura"
-#: templates/superbase.html:101
+#: templates/superbase.html:114
msgid "Themes"
msgstr "Motywy"
-#: templates/superbase.html:102
+#: templates/superbase.html:115
msgid "Audiobooks"
msgstr "Audiobooki"
-#: templates/superbase.html:103
+#: templates/superbase.html:116
msgid "Gallery"
msgstr "Galeria"
-#: templates/superbase.html:114
+#: templates/superbase.html:128
msgid "Search"
msgstr "Szukaj"
-#: templates/superbase.html:142
+#: templates/superbase.html:162
msgid "Close"
msgstr "Zamknij"
-#: templates/superbase.html:144
+#: templates/superbase.html:164
msgid "Loading"
msgstr "Ładowanie"
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:43+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"\">sign in</a>."
msgstr ""
-#: templates/superbase.html:21
+#: templates/superbase.html:23
msgid "Wolne Lektury"
msgstr "на WolneLektury.pl"
-#: templates/superbase.html:51
-#, python-format
+#: templates/superbase.html:54
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free reading you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
+#| msgid_plural ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free readings you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
msgid ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free reading you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free reading you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgid_plural ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free readings you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free readings you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgstr[0] ""
"\n"
" <a href='%(b)s'>%(c)s</a> бесплатное чтение, котором Вы "
"<a href='%(r)s'>вправе пользоваться </a>\n"
" "
-#: templates/superbase.html:61
+#: templates/superbase.html:64
#, fuzzy
#| msgid "Language versions"
msgid "Language"
msgstr "Языковые версии"
-#: templates/superbase.html:85
+#: templates/superbase.html:90
msgid "My shelf"
msgstr "Создать полку"
-#: templates/superbase.html:88
+#: templates/superbase.html:94
msgid "Administration"
msgstr "Администрация"
-#: templates/superbase.html:90
+#: templates/superbase.html:100
msgid "Logout"
msgstr "Выход"
-#: templates/superbase.html:93 views.py:67 views.py:68
+#: templates/superbase.html:104 views.py:67 views.py:68
msgid "Sign in"
msgstr "Вход"
-#: templates/superbase.html:93 views.py:86 views.py:87 views.py:115
+#: templates/superbase.html:106 views.py:86 views.py:87 views.py:115
msgid "Register"
msgstr "Зарегистроваться"
-#: templates/superbase.html:100
+#: templates/superbase.html:113
msgid "Literature"
msgstr ""
-#: templates/superbase.html:101
+#: templates/superbase.html:114
msgid "Themes"
msgstr "Мотивы"
-#: templates/superbase.html:102
+#: templates/superbase.html:115
msgid "Audiobooks"
msgstr "Аудиокниги"
-#: templates/superbase.html:103
+#: templates/superbase.html:116
msgid "Gallery"
msgstr ""
-#: templates/superbase.html:114
+#: templates/superbase.html:128
msgid "Search"
msgstr "Поиск"
-#: templates/superbase.html:142
+#: templates/superbase.html:162
msgid "Close"
msgstr "Закройте"
-#: templates/superbase.html:144
+#: templates/superbase.html:164
msgid "Loading"
msgstr "Погрузка"
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:43+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Якщо це помилка, перейдіть до сторінки <a href=\"%(login_url)s\">реєстрації</"
"a>."
-#: templates/superbase.html:21
+#: templates/superbase.html:23
msgid "Wolne Lektury"
msgstr "Wolne Lektury"
-#: templates/superbase.html:51
-#, python-format
+#: templates/superbase.html:54
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free reading you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
+#| msgid_plural ""
+#| "\n"
+#| " <a href='%(b)s'>%(c)s</a> free readings you have <a "
+#| "href='%(r)s'>right to</a>\n"
+#| " "
msgid ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free reading you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free reading you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgid_plural ""
"\n"
-" <a href='%(b)s'>%(c)s</a> free readings you have <a "
-"href='%(r)s'>right to</a>\n"
-" "
+" <a href='%(b)s'>%(c)s</a> free readings you have "
+"<a href='%(r)s'>right to</a>\n"
+" "
msgstr[0] ""
"\n"
" <a href='%(b)s'>%(c)s</a> безкоштовний текст, до якого "
"маєш <a href='%(r)s'>право</a>\n"
" "
-#: templates/superbase.html:61
+#: templates/superbase.html:64
#, fuzzy
#| msgid "Language versions"
msgid "Language"
msgstr "Мовні версії"
-#: templates/superbase.html:85
+#: templates/superbase.html:90
msgid "My shelf"
msgstr "Моя полиця"
-#: templates/superbase.html:88
+#: templates/superbase.html:94
msgid "Administration"
msgstr "Адміністрація"
-#: templates/superbase.html:90
+#: templates/superbase.html:100
msgid "Logout"
msgstr "Вийти "
-#: templates/superbase.html:93 views.py:67 views.py:68
+#: templates/superbase.html:104 views.py:67 views.py:68
msgid "Sign in"
msgstr "Увійти"
-#: templates/superbase.html:93 views.py:86 views.py:87 views.py:115
+#: templates/superbase.html:106 views.py:86 views.py:87 views.py:115
msgid "Register"
msgstr "Зареєструватися"
-#: templates/superbase.html:100
+#: templates/superbase.html:113
msgid "Literature"
msgstr ""
-#: templates/superbase.html:101
+#: templates/superbase.html:114
msgid "Themes"
msgstr "Теми"
-#: templates/superbase.html:102
+#: templates/superbase.html:115
msgid "Audiobooks"
msgstr "Аудіокниги"
-#: templates/superbase.html:103
+#: templates/superbase.html:116
msgid "Gallery"
msgstr ""
-#: templates/superbase.html:114
+#: templates/superbase.html:128
msgid "Search"
msgstr "Пошук"
-#: templates/superbase.html:142
+#: templates/superbase.html:162
msgid "Close"
msgstr "Закрити"
-#: templates/superbase.html:144
+#: templates/superbase.html:164
msgid "Loading"
msgstr "Завантажується"
from .paths import *
-TEMPLATE_CONTEXT_PROCESSORS = (
- 'django.contrib.auth.context_processors.auth',
- 'django.core.context_processors.debug',
- 'django.core.context_processors.i18n',
- 'django.core.context_processors.media',
- 'django.core.context_processors.request',
- 'wolnelektury.context_processors.extra_settings',
- 'search.context_processors.search_form',
-)
-
MIDDLEWARE_CLASSES = [
'django.middleware.csrf.CsrfViewMiddleware',
'ssify.middleware.SsiMiddleware',
SITE_ID = 1
-# List of callables that know how to import templates from various sources.
-TEMPLATE_LOADERS = [
- 'django.template.loaders.filesystem.Loader',
- 'django.template.loaders.app_directories.Loader',
- # 'django.template.loaders.eggs.Loader',
-]
+TEMPLATES = [{
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'OPTIONS': {
+ 'loaders': (
+ ('django.template.loaders.cached.Loader', (
+ 'django.template.loaders.filesystem.Loader',
+ 'django.template.loaders.app_directories.Loader',
+ )),
+ ),
+ 'context_processors': (
+ 'django.contrib.auth.context_processors.auth',
+ 'django.core.context_processors.debug',
+ 'django.core.context_processors.i18n',
+ 'django.core.context_processors.media',
+ 'django.core.context_processors.request',
+ 'wolnelektury.context_processors.extra_settings',
+ 'search.context_processors.search_form',
+ ),
+ },
+}]
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
+IMAGE_DIR = 'book/pictures/'
+
# CSS and JavaScript file groups
PIPELINE = {
body {
font-size: 16px;
- font: Georgia, "Times New Roman", serif;
+ font-family: Georgia, "Times New Roman", serif;
line-height: 1.5em;
margin: 0;
}
img {
border: none;
+ max-width: 36em;
+ margin-top: 1em;
}
#logo {
#menu {
position: fixed;
- left: 0em;
- top: 0em;
+ left: 0;
+ top: 0;
width: 100%;
height: 1.5em;
background: #333;
#toc, #themes, #nota_red, #info, #other-versions, #objects {
position: fixed;
- left: 0em;
+ left: 0;
top: 1.5em;
width: 37em;
padding: 1.5em;
}
#download {
position: fixed;
- left: 0em;
+ left: 0;
top: 1.5em;
width: 37em;
padding: 1.5em;
text-decoration: none;
}
+img {
+ max-width: 37.5rem;
+ margin-top: 1em;
+}
+
/* ================================== */
/* = Header with logo and menu = */
/* ================================== */
+@import "../tools";
+@import "const";
+
@mixin inner-box {
display: block;
color: black;
@include size(width, 415px);
top: 0;
@include size(margin-left, 550px);
- margin-top: 0em;
+ margin-top: 0;
}
}
@include size(margin-right, 11.25px);
position: absolute;
right: 0;
+ z-index: 10;
- button::-moz-focus-inner {
- padding: 0;
- border: 0
+ button {
+ cursor: pointer;
+ &::-moz-focus-inner {
+ padding: 0;
+ border: 0
+ }
}
.if-unlike button {
font-size: 1em;
.errorlist {
color: #BF3024;
}
+
+ .checkbox {
+ label {
+ display: inline;
+ }
+
+ input {
+ width: auto;
+ }
+ }
}
+@import "../tools";
+
$header_bg: #191919;
$small_logo: .9;
+#banners {
+ display: inline-block;
+ width: 100%;
+
+ > a {
+ display: block;
+ width: 100%;
+ }
+
+ img {
+ display: block;
+ margin: 0 auto;
+ width: 100%
+ }
+}
+
header#main {
@include size(line-height, 20px); /* Make links easier to click when wrapped. */
background-color: $header_bg;
@include size(border-radius, 5px);
@include box-shadow(0 0 6.5px #444444 inset);
- font-family: Georgia;
+ font-family: Georgia, serif;
@include size(font-size, 13px);
background-color: white;
color: black;
/* styling search placeholder */
&::placeholder {
- font-family: Georgia;
+ font-family: Georgia, serif;
font-style: italic;
color: #767676;
}
&::-webkit-input-placeholder {
- font-family: Georgia;
+ font-family: Georgia, serif;
font-style: italic;
color: #767676;
}
&::-moz-placeholder {
- font-family: Georgia;
+ font-family: Georgia, serif;
font-style: italic;
color: #767676;
}
{% extends "superbase.html" %}
-{% block ogtitle %}{% block titleextra %}{% endblock %}{% endblock %}
+{% block ogtitle %}{% block titleextra %}{{ page_title }}{% endblock %}{% endblock %}
{% load static from staticfiles %}
{% load i18n catalogue_tags infopages_tags social_tags %}
{% load ssi_include from ssify %}
+{% load cache %}
{% block title %}{% trans "Wolne Lektury internet library" %}{% endblock %}
{% block body %}{% spaceless %}
- {% choose_cite as cite_pk %}
- {{ cite_pk.if }}
- {% ssi_include 'social_cite_main' pk=cite_pk %}
- {{ cite_pk.endif }}
-
- <section id="main-library">
- <h1>W naszej cyfrowej bibliotece znajdziesz</h1>
- <div class="main-library-row">
- <div class="covers">
- {% for b in best %}
- {% ssi_include 'catalogue_book_mini' pk=b.pk %}
- {% endfor %}
- </div>
- <a href="{% url "book_list" %}">
- <div class="note white-box normal-text" style="font-size: 18px">
- i wiele innych książek, wierszy, obrazów, audiobooków…
- </div>
- </a>
- </div>
- </section>
-
- <section id="main-theme">
- <h1>Motywy i tematy</h1>
- <div class="white-box normal-text">
- <h2>{% trans "Theme" %}: {{ theme }}</h2>
- <p>Utwory, w których występuje ten motyw:</p>
- {% for book in theme_books %}
- {% ssi_include 'catalogue_book_mini' pk=book.pk %}
+ {% choose_cite as cite_pk %}
+ {{ cite_pk.if }}
+ {% ssi_include 'social_cite_main' pk=cite_pk %}
+ {{ cite_pk.endif }}
+
+ <section id="main-library">
+ <h1>W naszej cyfrowej bibliotece znajdziesz</h1>
+ <div class="main-library-row">
+ <div class="covers">
+ {% for book in best %}
+ {% cache 86400 book_mini_box book.pk %}
+ {% include 'catalogue/book_mini_box.html' %}
+ {% endcache %}
+ {#% ssi_include 'catalogue_book_mini' pk=b.pk %#}
{% endfor %}
- {% if theme_fragment %}
- {% ssi_include 'catalogue_fragment_promo' pk=theme_fragment.pk %}
- {% endif %}
+ </div>
+ <a href="{% url "book_list" %}">
+ <div class="note white-box normal-text" style="font-size: 18px">
+ i wiele innych książek, wierszy, obrazów, audiobooków…
</div>
- <a class="more" href="{% url 'theme_catalogue' %}">Zobacz katalog motywów</a>
- </section>
-
- {% comment %}
- <section class="tag-box-section">
- <h1>Autorzy</h1>
- <a class="tag-box" href="{{ author.get_absolute_url }}">
- {% ssi_include "catalogue_tag_box" pk=author.pk %}
</a>
- <a class="more" href="{% url 'author_catalogue' %}">Zobacz katalog autorów</a>
- </section>
+ </div>
+ </section>
+
+ <section id="main-theme">
+ <h1>Motywy i tematy</h1>
+ <div class="white-box normal-text">
+ <h2>{% trans "Theme" %}: {{ theme }}</h2>
+ <p>Utwory, w których występuje ten motyw:</p>
+ {% for book in theme_books %}
+ {% cache 86400 book_mini_box book.pk %}
+ {% include 'catalogue/book_mini_box.html' %}
+ {% endcache %}
+ {#% ssi_include 'catalogue_book_mini' pk=book.pk %#}
+ {% endfor %}
+ {% if theme_fragment %}
+ {% ssi_include 'catalogue_fragment_promo' pk=theme_fragment.pk %}
+ {% endif %}
+ </div>
+ <a class="more" href="{% url 'theme_catalogue' %}">Zobacz katalog motywów</a>
+ </section>
+
+ {% comment %}
+ <section class="tag-box-section">
+ <h1>Autorzy</h1>
+ <a class="tag-box" href="{{ author.get_absolute_url }}">
+ {% ssi_include "catalogue_tag_box" pk=author.pk %}
+ </a>
+ <a class="more" href="{% url 'author_catalogue' %}">Zobacz katalog autorów</a>
+ </section>
- <section class="tag-box-section">
- <h1>Gatunki</h1>
- <a class="tag-box" href="{{ genre.get_absolute_url }}">
+ <section class="tag-box-section">
+ <h1>Gatunki</h1>
+ <a class="tag-box" href="{{ genre.get_absolute_url }}">
{% ssi_include "catalogue_tag_box" pk=genre.pk %}
- </a>
- <a class="more" href="{% url 'genre_catalogue' %}">Zobacz katalog gatunków</a>
- </section>
+ </a>
+ <a class="more" href="{% url 'genre_catalogue' %}">Zobacz katalog gatunków</a>
+ </section>
- <section class="tag-box-section">
- <h1>Rodzaje</h1>
- <a class="tag-box" href="{{ kind.get_absolute_url }}">
+ <section class="tag-box-section">
+ <h1>Rodzaje</h1>
+ <a class="tag-box" href="{{ kind.get_absolute_url }}">
{% ssi_include "catalogue_tag_box" pk=kind.pk %}
- </a>
- <a class="more" href="{% url 'kind_catalogue' %}">Zobacz katalog rodzajów</a>
- </section>
+ </a>
+ <a class="more" href="{% url 'kind_catalogue' %}">Zobacz katalog rodzajów</a>
+ </section>
- <section class="tag-box-section">
- <h1>Epoki</h1>
- <a class="tag-box" href="{{ epoch.get_absolute_url }}">
+ <section class="tag-box-section">
+ <h1>Epoki</h1>
+ <a class="tag-box" href="{{ epoch.get_absolute_url }}">
{% ssi_include "catalogue_tag_box" pk=epoch.pk %}
- </a>
- <a class="more" href="{% url 'epoch_catalogue' %}">Zobacz katalog epok</a>
- </section>
- {% endcomment %}
-
- {% if collection %}
- <section>
- <h1>Kolekcje</h1>
- {% ssi_include 'catalogue_collection_box' pk=collection.pk %}
- <a class="more" href="{% url 'catalogue_collections' %}">Zobacz katalog kolekcji</a>
- </section>
- {% endif %}
+ </a>
+ <a class="more" href="{% url 'epoch_catalogue' %}">Zobacz katalog epok</a>
+ </section>
+ {% endcomment %}
+ {% if collection %}
<section>
- <h1>{% trans "Recent publications" %}</h1>
- {% for book in last_published %}
- {% ssi_include 'catalogue_book_mini' pk=book.pk %}
- {% endfor %}
- <a class="more" href="{% url 'recent_list' %}">{% trans "More recent publications" %}</a>
+ <h1>Kolekcje</h1>
+ {% ssi_include 'catalogue_collection_box' pk=collection.pk %}
+ <a class="more" href="{% url 'catalogue_collections' %}">Zobacz katalog kolekcji</a>
</section>
-
- <div class="clearboth"></div>
-
- <section class="infopages-box">
- <h1>{% trans "News" %}</h1>
- {% ssi_include 'latest_blog_posts' %}
- </section>
-
-
- <section class="infopages-box">
- <h1>{% trans "Utilities" %}</h1>
-
- <ul>
- <li><a href="{% url 'suggest' %}" id="suggest" class="ajaxable">{% trans "Report a bug or suggestion" %}</a></li>
- <!--li><a href="http://turniej.wolnelektury.pl">Turniej Elektrybałtów</a></li-->
- <li><a href="{% url 'reporting_catalogue_pdf' %}">{% trans "Download the catalogue in PDF format." %}</a></li>
- <li><a href="{% url 'dictionary_notes' %}">{% trans "Footnotes" %}</a></li>
- <li><a href="{% url 'suggest_publishing' %}" id="suggest-publishing" class="ajaxable">{% trans "Missing a book?" %}</a></li>
- <li><a href="{% url 'publish_plan' %}">{% trans "Publishing plan" %}</a></li>
- <li><a href="{% url 'api' %}">API</a></li>
- <li><a href="{% url 'oaipmh' %}">OAI-PMH</a></li>
- <li><a href="{% url 'lesmianator' %}" lang="pl">Leśmianator</a></li>
- <li><a href="http://polski.wolnelektury.pl" lang="pl">Materiały do nauki j. polskiego</a></li>
-
- </ul>
- </section>
-
-
- <section class="infopages-box">
- <h1>{% trans "Information" %}</h1>
- <ul>
- <li><a href="https://nowoczesnapolska.org.pl/prywatnosc/">{% trans "Privacy policy" %}</a></li>
- {% infopages_on_main %}
- </ul>
-
- <div class="social-links">
- <a href="https://pl-pl.facebook.com/pages/Wolne-Lektury/203084073268" title='Wolne Lektury @ Facebook'>
- <img src="{% static "img/social/f.png" %}" alt="Wolne Lektury @ Facebook" />
- </a>
- <a href="https://nk.pl/profile/30441509" title='Wolne Lektury @ NK'>
- <img src="{% static "img/social/nk.png" %}" alt="Wolne Lektury @ NK.pl" />
- </a>
- </div>
- </section>
-
+ {% endif %}
+
+ <section>
+ <h1>{% trans "Recent publications" %}</h1>
+ {% for book in last_published %}
+ {% cache 86400 book_mini_box book.pk %}
+ {% include 'catalogue/book_mini_box.html' %}
+ {% endcache %}
+ {#% ssi_include 'catalogue_book_mini' pk=book.pk %#}
+ {% endfor %}
+ <a class="more" href="{% url 'recent_list' %}">{% trans "More recent publications" %}</a>
+ </section>
+
+ <div class="clearboth"></div>
+
+ <section class="infopages-box">
+ <h1>{% trans "News" %}</h1>
+ {% ssi_include 'latest_blog_posts' %}
+ </section>
+
+
+ <section class="infopages-box">
+ <h1>{% trans "Utilities" %}</h1>
+
+ <ul>
+ <li><a href="{% url 'suggest' %}" id="suggest" class="ajaxable">{% trans "Report a bug or suggestion" %}</a></li>
+ <!--li><a href="http://turniej.wolnelektury.pl">Turniej Elektrybałtów</a></li-->
+ <li><a href="{% url 'reporting_catalogue_pdf' %}">{% trans "Download the catalogue in PDF format." %}</a></li>
+<li><a href="{% url 'dictionary_notes' %}">{% trans "Footnotes" %}</a></li>
+ <li><a href="{% url 'suggest_publishing' %}" id="suggest-publishing" class="ajaxable">{% trans "Missing a book?" %}</a></li>
+ <li><a href="{% url 'publish_plan' %}">{% trans "Publishing plan" %}</a></li>
+ <li><a href="{% url 'api' %}">API</a></li>
+ {#<li><a href="{% url 'oaipmh' %}">OAI-PMH</a></li>#}
+ <li><a href="{% url 'lesmianator' %}" lang="pl">Leśmianator</a></li>
+ <li><a href="http://polski.wolnelektury.pl" lang="pl">Materiały do nauki j. polskiego</a></li>
+ </ul>
+ </section>
+
+
+ <section class="infopages-box">
+ <h1>{% trans "Information" %}</h1>
+ <ul>
+ <li><a href="https://nowoczesnapolska.org.pl/prywatnosc/">{% trans "Privacy policy" %}</a></li>
+ {% infopages_on_main %}
+ </ul>
+
+ <div class="social-links">
+ <a href="https://pl-pl.facebook.com/pages/Wolne-Lektury/203084073268" title='Wolne Lektury @ Facebook'>
+ <img src="{% static "img/social/f.png" %}" alt="Wolne Lektury @ Facebook" />
+ </a>
+ <a href="https://nk.pl/profile/30441509" title='Wolne Lektury @ NK'>
+ <img src="{% static "img/social/nk.png" %}" alt="Wolne Lektury @ NK.pl" />
+ </a>
+ </div>
+ </section>
{% endspaceless %}{% endblock %}
{% block add_footer %}{% spaceless %}
-{{ cite_pk.if }}
+ {{ cite_pk.if }}
<p>{% trans "Image used:" %}
- {% ssi_include 'social_cite_info' pk=cite_pk %}
+ {% ssi_include 'social_cite_info' pk=cite_pk %}
</p>
-{{ cite_pk.endif }}
+ {{ cite_pk.endif }}
{% endspaceless %}{% endblock %}
<!DOCTYPE html>
{% spaceless %}
-<html lang="{{ LANGUAGE_CODE }}" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
+ <html lang="{{ LANGUAGE_CODE }}" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
{% load pipeline i18n %}
{% load static from staticfiles %}
{% load catalogue_tags funding_tags reporting_stats %}
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="application-name" content="Wolne Lektury" />
<meta property="og:site_name" content="Wolne Lektury" />
- <meta property="og:title" content="{% block ogtitle %}{% endblock %}" />
+ <meta property="og:title" content="{% block ogtitle %}{{ page_title }}{% endblock %}" />
<meta property="og:type" content="{% block ogtype %}website{% endblock %}" />
<meta property="og:image" content="{% block ogimage %}{{ FULL_STATIC_URL }}img/wiatrak.jpg{% endblock %}" />
<meta name="description" content="{% block metadescription %}Darmowe, opracowane, pełne teksty lektur, e-booki, audiobooki i pliki DAISY na wolnej licencji.{% endblock %}" />
{% block ogextra %}{% endblock %}
- <title>{% block title %}{% trans "Wolne Lektury" %} :: {% block titleextra %}{% endblock %}{% endblock %}</title>
- <link rel="icon" href="{% static 'img/favicon.png' %}" type="image/png" />
- <link rel="search" type="application/opensearchdescription+xml" title="Wolne Lektury" href="{% static 'opensearch.xml' %}" />
+ <title>
+ {% block title %}{% block titleextra %}{{ page_title }}{% endblock %} :: {% trans "Wolne Lektury" %}{% endblock %}</title>
+ <link rel="icon" href="{% static 'img/favicon.png' %}" type="image/png"/>
+ <link rel="search" type="application/opensearchdescription+xml" title="Wolne Lektury"
+ href="{% static 'opensearch.xml' %}"/>
{% stylesheet "main" %}
{% block extrahead %}
{% endblock %}
</head>
<body id="{% block bodyid %}base{% endblock %}">
- {% block bodycontent %}
+ {% block bodycontent %}
{% if not funding_no_show_current %}
{% current_offer as current_offer %}
{{ current_offer.if }}
- {% ssi_include 'funding_top_bar' pk=current_offer %}
+ {% ssi_include 'funding_top_bar' pk=current_offer %}
{{ current_offer.endif }}
{% endif %}
<div id="whole-header">
- <div id="header-wrapper">
- <header id="main">
+ <div id="header-wrapper">
+ <header id="main">
- <a href="/" id="logo">
- <img src="{% static 'img/logo-neon.png' %}" alt="Wolne Lektury" />
- </a>
+ <a href="/" id="logo">
+ <img src="{% static 'img/logo-neon.png' %}" alt="Wolne Lektury"/>
+ </a>
- <p id="tagline">
- {% url 'book_list' as b %}
- {% url 'infopage' 'prawa' as r %}
+ <p id="tagline">
+ {% url 'book_list' as b %}
+ {% url 'infopage' 'prawa' as r %}
{% count_books book_count %}
- {% blocktrans count book_count as c %}
- <a href='{{b}}'>{{c}}</a> free reading you have <a href='{{r}}'>right to</a>
- {% plural %}
- <a href='{{b}}'>{{c}}</a> free readings you have <a href='{{r}}'>right to</a>
- {% endblocktrans %}
- </p>
-
- <div id="lang-menu" class="hoverget">
+ {% blocktrans count book_count as c %}
+ <a href='{{ b }}'>{{ c }}</a> free reading you have <a href='{{ r }}'>right to</a>
+ {% plural %}
+ <a href='{{ b }}'>{{ c }}</a> free readings you have <a href='{{ r }}'>right to</a>
+ {% endblocktrans %}
+ </p>
+
+ <div id="lang-menu" class="hoverget">
<span id='lang-button' class='hoverclick'>
<span class="lang-flag">⚐</span>
<span class="label"> {% trans "Language" %}</span>
</span>
- <div id="lang-menu-items">
- {% for lang in LANGUAGES %}
- <form action="{% url 'django.views.i18n.set_language' %}" method="post">
- {% ssi_csrf_token %}
- <input type="hidden" name="language" value="{{ lang.0 }}" />
- <button type="submit" lang="{{ lang.0 }}" class="{% ifequal lang.0 LANGUAGE_CODE %}active{% endifequal %}">{{ lang.1 }}</button>
- </form>
- {% endfor %}
- </div>
- </div>
-
- <a id="show-menu"></a>
- <nav id="menu">
-
- <ul id="user-info">
- {% user_username as user_username %}
- {% user_is_staff as user_is_staff %}
- {{ user_username.if }}<li>
- <a href="{% url 'user_settings' %}">
- <strong>{{ user_username }}</strong>
- </a>
- </li>
- <li><a href="{% url 'social_my_shelf' %}" id="user-shelves-link">{% trans "My shelf" %}</a>
- </li>
- {{ user_username.endif }}
- {{ user_is_staff.if }}<li><a href="/admin/">{% trans "Administration" %}</a></li>
- {{ user_is_staff.endif }}
- {{ user_username.if }}<li><a href="{% url 'logout' %}?next={% block logout %}{{ request.get_full_path }}{% endblock %}">{% trans "Logout" %}</a></li>
- {{ user_username.else }}
- <li>
- <a href="{% url 'login' %}?next={{ request.path }}" id="login">{% trans "Sign in" %}</a> / <a href="{% url 'register' %}?next={{ request.path }}" id="register">{% trans "Register" %}</a>
- </li>
- {{ user_username.endif }}
- </ul>
+ <div id="lang-menu-items">
+ {% for lang in LANGUAGES %}
+ <form action="{% url 'django.views.i18n.set_language' %}" method="post">
+ {% ssi_csrf_token %}
+ <input type="hidden" name="language" value="{{ lang.0 }}"/>
+ <button type="submit" lang="{{ lang.0 }}"
+ class="{% ifequal lang.0 LANGUAGE_CODE %}active{% endifequal %}">{{ lang.1 }}</button>
+ </form>
+ {% endfor %}
+ </div>
+ </div>
+
+ <a id="show-menu"></a>
+ <nav id="menu">
+
+ <ul id="user-info">
+ {% user_username as user_username %}
+ {% user_is_staff as user_is_staff %}
+ {{ user_username.if }}
+ <li>
+ <a href="{% url 'user_settings' %}">
+ <strong>{{ user_username }}</strong>
+ </a>
+ </li>
+ <li><a href="{% url 'social_my_shelf' %}" id="user-shelves-link">{% trans "My shelf" %}</a>
+ </li>
+ {{ user_username.endif }}
+ {{ user_is_staff.if }}
+ <li><a href="/admin/">{% trans "Administration" %}</a></li>
+ {{ user_is_staff.endif }}
+ {{ user_username.if }}
+ <li><a href="{% url 'logout' %}?next=
+
+
+ {% block logout %}{{ request.get_full_path }}{% endblock %}">{% trans "Logout" %}</a>
+ </li>
+ {{ user_username.else }}
+ <li>
+ <a href="{% url 'login' %}?next={{ request.path }}" id="login">{% trans "Sign in" %}</a>
+ / <a href="{% url 'register' %}?next={{ request.path }}"
+ id="register">{% trans "Register" %}</a>
+ </li>
+ {{ user_username.endif }}
+ </ul>
<ul id="main-menu">
</ul>
- </nav>
+ </nav>
- <form id="search-area" action="{% url 'search' %}">
- <div id="search-field">
- <label for="search">{{search_form.q.label}}</label>
- {{search_form.q}}
- </div><button type='submit'>{% trans "Search" %}</button>
- </form>
+ <form id="search-area" action="{% url 'search' %}">
+ <div id="search-field">
+ <label for="search">{{ search_form.q.label }}</label>
+ {{ search_form.q }}
+ </div>
+ <button type='submit'>{% trans "Search" %}</button>
+ </form>
- </header>
- </div>
+ </header>
+ </div>
</div>
<div id="main-content">
+ <div id="banners">
+ <a href="https://nowoczesnapolska.org.pl/pomoz-nam/wesprzyj-nas/">
+ <img src="{% static 'img/banners/960x150_wolneLektury.jpg' %}"
+ alt="Wesprzyj działalność Nowoczesnej Polski"/>
+ </a>
+ </div>
{% block body %}
{% endblock %}
<div class="clearboth"></div>
<div id="footer-wrapper">
- <footer id="main">
- {% ssi_include 'chunk' key='footer' %}
- {% block add_footer %}{% endblock %}
- {% ssi_include 'sponsor_page' name='footer' %}
- </footer>
+ <footer id="main">
+ {% ssi_include 'chunk' key='footer' %}
+ {% block add_footer %}{% endblock %}
+ {% ssi_include 'sponsor_page' name='footer' %}
+ </footer>
</div>
</div>
- {% endblock bodycontent %}
+ {% endblock bodycontent %}
- <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
- <script type="text/javascript">var LANGUAGE_CODE="{{ LANGUAGE_CODE }}"; var STATIC_URL="{{ STATIC_URL }}";</script>
- {% javascript "base" %}
+ <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
+ <script type="text/javascript">var LANGUAGE_CODE = "{{ LANGUAGE_CODE }}";
+ var STATIC_URL = "{{ STATIC_URL }}";</script>
+ {% javascript "base" %}
- {% tracking_code %}
+ {% tracking_code %}
- {% block extrabody %}
- {% endblock %}
+ {% block extrabody %}
+ {% endblock %}
- <script src="{% static "js/contrib/modernizr.custom.19652.js" %}"></script>
+ <script src="{% static "js/contrib/modernizr.custom.19652.js" %}"></script>
</body>
-</html>
+ </html>
{% endspaceless %}
# pass
# FIXME: find this theme and books properly.
- if Fragment.objects.count():
+ if Fragment.objects.exists():
while True:
ctx['theme'] = Tag.objects.filter(category='theme').order_by('?')[:1][0]
- tf = Fragment.tagged.with_any([ctx['theme']]).order_by('?')[:100]
+ tf = Fragment.tagged.with_any([ctx['theme']]).select_related('book').order_by('?')[:100]
if not tf:
continue
ctx['theme_fragment'] = tf[0]