from django import forms
from newtagging.admin import TaggableModelAdmin, TaggableModelForm
-from catalogue.models import Tag, Book, Fragment, BookMedia
+from catalogue.models import Tag, Book, Fragment, BookMedia, Collection
class TagAdmin(admin.ModelAdmin):
ordering = ('book', 'anchor',)
+class CollectionAdmin(admin.ModelAdmin):
+ prepopulated_fields = {'slug': ('title',)}
+
+
admin.site.register(Tag, TagAdmin)
admin.site.register(Book, BookAdmin)
admin.site.register(Fragment, FragmentAdmin)
+admin.site.register(Collection, CollectionAdmin)
--- /dev/null
+[
+ {
+ "pk": "promo",
+ "model": "chunks.chunk",
+ "fields": {
+ "content": "<h2>Biblioteczka Boya</h2>\r\n\r\n<p>T\u0142umaczenia literatury francuskiej i nie tylko.</p>\r\n\r\n<p class=\"see-more\"><a href=\"/katalog/lektury/boy/\" >Biblioteczka Boya \u21d2</a></p>",
+ "description": "boks promocyjny na g\u0142\u00f3wnej"
+ }
+ },
+ {
+ "pk": "boy",
+ "model": "catalogue.collection",
+ "fields": {
+ "book_slugs": "http://www.wolnelektury.pl/katalog/lektura/piesn-o-rolandzie/\nhttp://www.wolnelektury.pl/katalog/lektura/wielki-testament/\nhttp://www.wolnelektury.pl/katalog/lektura/skapiec/\nhttp://www.wolnelektury.pl/katalog/lektura/mieszczanin-szlachcicem/\nhttp://www.wolnelektury.pl/katalog/lektura/kandyd/\nhttp://www.wolnelektury.pl/katalog/lektura/rozprawa-o-metodzie/\nhttp://www.wolnelektury.pl/katalog/lektura/listy-perskie/\nhttp://www.wolnelektury.pl/katalog/lektura/spowiedz-dzieciecia-wieku/\nhttp://www.wolnelektury.pl/katalog/lektura/ubu-krol/\nhttp://www.wolnelektury.pl/katalog/lektura/legenda-o-tristanie-i-izoldzie/\nhttp://www.wolnelektury.pl/katalog/lektura/boy-swietoszek/\nhttp://www.wolnelektury.pl/katalog/lektura/mizantrop/\nhttp://www.wolnelektury.pl/katalog/lektura/kubus-fatalista-i-jego-pan/\nhttp://www.wolnelektury.pl/katalog/lektura/mysli/\nhttp://www.wolnelektury.pl/katalog/lektura/o-duchu-praw/\nhttp://www.wolnelektury.pl/katalog/lektura/proby/\nhttp://www.wolnelektury.pl/katalog/lektura/w-strone-swanna/\nhttp://www.wolnelektury.pl/katalog/lektura/gargantua-i-pantagruel/",
+ "description": "",
+ "title": "Biblioteczka Boya"
+ }
+ }
+]
\ No newline at end of file
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-11 15:44+0200\n"
-"PO-Revision-Date: 2011-10-11 15:44+0100\n"
+"POT-Creation-Date: 2012-01-10 13:04+0100\n"
+"PO-Revision-Date: 2012-01-10 13:05+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
msgid "Enter a valid JSON value. Error: %s"
msgstr "Wprowadź prawidłową wartość JSON. Błąd: %s"
-#: forms.py:25
+#: forms.py:26
msgid "Please supply an XML."
msgstr "Proszę podać XML."
-#: forms.py:39
+#: forms.py:40
msgid "title, author, theme/topic, epoch, kind, genre"
msgstr "tytuł, autor, motyw/temat, epoka, rodzaj, gatunek"
-#: forms.py:56
+#: forms.py:57
msgid "Shelves"
msgstr "Półki"
-#: forms.py:69
+#: forms.py:70
msgid "Name of the new shelf"
msgstr "nazwa nowej półki"
-#: models.py:35
+#: models.py:29
msgid "author"
msgstr "autor"
-#: models.py:36
+#: models.py:30
msgid "epoch"
msgstr "epoka"
-#: models.py:37
+#: models.py:31
msgid "kind"
msgstr "rodzaj"
-#: models.py:38
+#: models.py:32
msgid "genre"
msgstr "gatunek"
-#: models.py:39
+#: models.py:33
msgid "theme"
msgstr "motyw"
-#: models.py:40
+#: models.py:34
msgid "set"
msgstr "półka"
-#: models.py:41 models.py:314
+#: models.py:35
+#: models.py:319
msgid "book"
msgstr "książka"
-#: models.py:45
+#: models.py:39
msgid "ODT file"
msgstr "Plik ODT"
-#: models.py:46
+#: models.py:40
msgid "MP3 file"
msgstr "Plik MP3"
-#: models.py:47
+#: models.py:41
msgid "OGG file"
msgstr "Plik OGG"
-#: models.py:48
+#: models.py:42
msgid "DAISY file"
msgstr "Plik DAISY"
-#: models.py:65 models.py:198
+#: models.py:59
+#: models.py:194
msgid "name"
msgstr "nazwa"
-#: models.py:66 models.py:287 models.py:876
+#: models.py:60
+#: models.py:294
+#: models.py:951
+#: models.py:968
+#: models.py:971
msgid "slug"
msgstr "slug"
-#: models.py:67 models.py:286
+#: models.py:61
+#: models.py:293
msgid "sort key"
msgstr "klucz sortowania"
-#: models.py:68
+#: models.py:62
msgid "category"
msgstr "kategoria"
-#: models.py:70 models.py:112 models.py:288 models.py:469
+#: models.py:64
+#: models.py:106
+#: models.py:295
+#: models.py:444
+#: models.py:969
msgid "description"
msgstr "opis"
-#: models.py:71
-msgid "main page"
-msgstr "strona główna"
-
-#: models.py:71
-msgid "Show tag on main page"
-msgstr "Pokazuj tag na stronie głównej"
-
-#: models.py:74
+#: models.py:68
msgid "book count"
msgstr "liczba książek"
-#: models.py:78 models.py:79 models.py:200 models.py:289 models.py:290
+#: models.py:72
+#: models.py:73
+#: models.py:196
+#: models.py:296
+#: models.py:297
msgid "creation date"
msgstr "data utworzenia"
-#: models.py:96
+#: models.py:90
msgid "tag"
msgstr "tag"
-#: models.py:97
+#: models.py:91
msgid "tags"
msgstr "tagi"
-#: models.py:197 models.py:877
+#: models.py:193
+#: models.py:952
msgid "type"
msgstr "typ"
-#: models.py:199
+#: models.py:195
msgid "file"
msgstr "plik"
-#: models.py:201 models.py:292
+#: models.py:197
+#: models.py:299
msgid "extra information"
msgstr "dodatkowe informacje"
-#: models.py:210 models.py:211
+#: models.py:206
+#: models.py:207
msgid "book media"
msgstr "media książki"
-#: models.py:285
+#: models.py:292
+#: models.py:967
msgid "title"
msgstr "tytuł"
-#: models.py:291
+#: models.py:298
msgid "parent number"
msgstr "numer rodzica"
-#: models.py:296
-msgid "XML file"
-msgstr "Plik XML"
-
-#: models.py:297
-msgid "HTML file"
-msgstr "Plik HTML"
-
-#: models.py:298
-msgid "PDF file"
-msgstr "Plik PDF"
-
-#: models.py:299
-msgid "EPUB file"
-msgstr "Plik EPUB"
-
-#: models.py:300
-msgid "TXT file"
-msgstr "Plik TXT"
-
-#: models.py:315
+#: models.py:320
msgid "books"
msgstr "książki"
-#: models.py:435
+#: models.py:408
msgid "Read online"
msgstr "Czytaj online"
-#: models.py:656
+#: models.py:672
#, python-format
msgid "Book with slug = \"%s\" does not exist."
msgstr "Książki ο slug = \"%s\" nie istnieje."
-#: models.py:669
+#: models.py:685
#, python-format
msgid "Book %s already exists"
msgstr "Książka %s już istnieje"
-#: models.py:844
+#: models.py:900
+#, python-format
+msgid "%s file"
+msgstr "plik %s"
+
+#: models.py:919
msgid "fragment"
msgstr "fragment"
-#: models.py:845
+#: models.py:920
msgid "fragments"
msgstr "fragmenty"
-#: models.py:878
+#: models.py:953
msgid "sha-1 hash"
msgstr "hash sha-1"
-#: models.py:879
+#: models.py:954
msgid "time"
msgstr "czas"
-#: models.py:883
+#: models.py:958
msgid "file record"
msgstr ""
-#: models.py:884
+#: models.py:959
msgid "file records"
msgstr ""
-#: views.py:531
+#: models.py:972
+msgid "book slugs"
+msgstr "slugi książek"
+
+#: models.py:976
+msgid "collection"
+msgstr "kolekcja"
+
+#: models.py:977
+msgid "collections"
+msgstr "kolekcje"
+
+#: views.py:509
msgid "<p>To maintain your shelves you need to be logged in.</p>"
msgstr "<p>Aby zarządzać swoimi półkami, musisz się zalogować.</p>"
-#: views.py:553
+#: views.py:531
msgid "<p>Shelves were sucessfully saved.</p>"
msgstr "<p>Półki zostały zapisane.</p>"
-#: views.py:577
+#: views.py:555
msgid "Book was successfully removed from the shelf"
msgstr "Usunięto"
-#: views.py:579
+#: views.py:557
msgid "This book is not on the shelf"
msgstr "Książki nie ma na półce"
-#: views.py:689
+#: views.py:676
#, python-format
msgid "<p>Shelf <strong>%s</strong> was successfully removed</p>"
msgstr "<p>Półka <strong>%s</strong> została usunięta</p>"
-#: views.py:748
+#: views.py:738
#, python-format
msgid ""
"An error occurred: %(exception)s\n"
"\n"
"%(tb)s"
-#: views.py:749
+#: views.py:739
msgid "Book imported successfully"
msgstr "Książka zaimportowana"
-#: views.py:751
+#: views.py:741
#, python-format
msgid "Error importing file: %r"
msgstr "Błąd podczas importowania pliku: %r"
+#~ msgid "main page"
+#~ msgstr "strona główna"
+
+#~ msgid "Show tag on main page"
+#~ msgstr "Pokazuj tag na stronie głównej"
+
+#~ msgid "XML file"
+#~ msgstr "Plik XML"
+
+#~ msgid "HTML file"
+#~ msgstr "Plik HTML"
+
+#~ msgid "PDF file"
+#~ msgstr "Plik PDF"
+
+#~ msgid "EPUB file"
+#~ msgstr "Plik EPUB"
+
+#~ msgid "TXT file"
+#~ msgstr "Plik TXT"
+
#, fuzzy
#~ msgid "sort_key"
#~ msgstr "klucz sortowania"
#~ msgid "book stub"
#~ msgstr "zapowiedź książki"
-#~ msgid "book stubs"
-#~ msgstr "zapowiedzi książek"
-
#~ msgid "<p>Shelf <strong>%s</strong> was successfully created</p>"
#~ msgstr "<p>Półka <strong>%s</strong> została utworzona</p>"
--- /dev/null
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Adding model 'Collection'
+ db.create_table('catalogue_collection', (
+ ('title', self.gf('django.db.models.fields.CharField')(max_length=120, db_index=True)),
+ ('slug', self.gf('django.db.models.fields.SlugField')(max_length=120, primary_key=True, db_index=True)),
+ ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+ ('book_slugs', self.gf('django.db.models.fields.TextField')()),
+ ))
+ db.send_create_signal('catalogue', ['Collection'])
+
+ if not db.dry_run:
+ from django.core.management import call_command
+ call_command("loaddata", "collection-boy.json")
+
+ def backwards(self, orm):
+
+ # Deleting model 'Collection'
+ db.delete_table('catalogue_collection')
+
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'catalogue.book': {
+ 'Meta': {'ordering': "('sort_key',)", 'object_name': 'Book'},
+ 'changed_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
+ 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'epub_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'extra_info': ('catalogue.fields.JSONField', [], {'default': "'{}'"}),
+ 'gazeta_link': ('django.db.models.fields.CharField', [], {'max_length': '240', 'blank': 'True'}),
+ 'html_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'mobi_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'children'", 'null': 'True', 'to': "orm['catalogue.Book']"}),
+ 'parent_number': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'pdf_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '120', 'db_index': 'True'}),
+ 'sort_key': ('django.db.models.fields.CharField', [], {'max_length': '120', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '120'}),
+ 'txt_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'wiki_link': ('django.db.models.fields.CharField', [], {'max_length': '240', 'blank': 'True'}),
+ 'xml_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'})
+ },
+ 'catalogue.bookmedia': {
+ 'Meta': {'ordering': "('type', 'name')", 'object_name': 'BookMedia'},
+ 'book': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'media'", 'to': "orm['catalogue.Book']"}),
+ 'extra_info': ('catalogue.fields.JSONField', [], {'default': "'{}'"}),
+ 'file': ('catalogue.fields.OverwritingFileField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': "'100'"}),
+ 'source_sha1': ('django.db.models.fields.CharField', [], {'max_length': '40', 'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': "'100'"}),
+ 'uploaded_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'})
+ },
+ 'catalogue.collection': {
+ 'Meta': {'ordering': "('title',)", 'object_name': 'Collection'},
+ 'book_slugs': ('django.db.models.fields.TextField', [], {}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '120', 'primary_key': 'True', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '120', 'db_index': 'True'})
+ },
+ 'catalogue.filerecord': {
+ 'Meta': {'ordering': "('-time', '-slug', '-type')", 'object_name': 'FileRecord'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'sha1': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '120', 'db_index': 'True'}),
+ 'time': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '20', 'db_index': 'True'})
+ },
+ 'catalogue.fragment': {
+ 'Meta': {'ordering': "('book', 'anchor')", 'object_name': 'Fragment'},
+ 'anchor': ('django.db.models.fields.CharField', [], {'max_length': '120'}),
+ 'book': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'fragments'", 'to': "orm['catalogue.Book']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'short_text': ('django.db.models.fields.TextField', [], {}),
+ 'text': ('django.db.models.fields.TextField', [], {})
+ },
+ 'catalogue.tag': {
+ 'Meta': {'ordering': "('sort_key',)", 'unique_together': "(('slug', 'category'),)", 'object_name': 'Tag'},
+ 'book_count': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'category': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}),
+ 'changed_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'db_index': 'True', 'blank': 'True'}),
+ 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'db_index': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'gazeta_link': ('django.db.models.fields.CharField', [], {'max_length': '240', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'main_page': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '120', 'db_index': 'True'}),
+ 'sort_key': ('django.db.models.fields.CharField', [], {'max_length': '120', 'db_index': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}),
+ 'wiki_link': ('django.db.models.fields.CharField', [], {'max_length': '240', 'blank': 'True'})
+ },
+ 'catalogue.tagrelation': {
+ 'Meta': {'unique_together': "(('tag', 'content_type', 'object_id'),)", 'object_name': 'TagRelation', 'db_table': "'catalogue_tag_relation'"},
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'tag': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'items'", 'to': "orm['catalogue.Tag']"})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ }
+ }
+
+ complete_apps = ['catalogue']
def __unicode__(self):
return "%s %s.%s" % (self.sha1, self.slug, self.type)
+
+class Collection(models.Model):
+ """A collection of books, which might be defined before publishing them."""
+ title = models.CharField(_('title'), max_length=120, db_index=True)
+ slug = models.SlugField(_('slug'), max_length=120, primary_key=True)
+ description = models.TextField(_('description'), null=True, blank=True)
+
+ models.SlugField(_('slug'), max_length=120, unique=True, db_index=True)
+ book_slugs = models.TextField(_('book slugs'))
+
+ class Meta:
+ ordering = ('title',)
+ verbose_name = _('collection')
+ verbose_name_plural = _('collections')
+
+ def __unicode__(self):
+ return self.title
+
+
###########
#
# SIGNALS
url(r'^polki/$', 'user_shelves', name='user_shelves'),
url(r'^polki/(?P<slug>[a-zA-Z0-9-]+)/usun/$', 'delete_shelf', name='delete_shelf'),
url(r'^polki/(?P<slug>[a-zA-Z0-9-]+)\.zip$', 'download_shelf', name='download_shelf'),
- url(r'^lektury/', 'book_list', name='book_list'),
+ url(r'^lektury/$', 'book_list', name='book_list'),
+ url(r'^lektury/(?P<slug>[a-zA-Z0-9-]+)/$', 'collection', name='collection'),
url(r'^audiobooki/$', 'audiobook_list', name='audiobook_list'),
url(r'^daisy/$', 'daisy_list', name='daisy_list'),
url(r'^lektura/(?P<slug>[a-zA-Z0-9-]+)/polki/', 'book_sets', name='book_shelves'),
context_instance=RequestContext(request))
-def book_list(request, filter=None, template_name='catalogue/book_list.html'):
+def book_list(request, filter=None, template_name='catalogue/book_list.html',
+ context=None):
""" generates a listing of all books, optionally filtered with a test function """
form = forms.SearchForm()
template_name='catalogue/daisy_list.html')
+def collection(request, slug):
+ coll = get_object_or_404(models.Collection, slug=slug)
+ slugs = coll.book_slugs.split()
+ # allow URIs
+ slugs = [slug.rstrip('/').rsplit('/', 1)[-1] if '/' in slug else slug
+ for slug in slugs]
+ return book_list(request, Q(slug__in=slugs),
+ template_name='catalogue/collection.html',
+ context={'collection': coll})
+
+
def differentiate_tags(request, tags, ambiguous_slugs):
beginning = '/'.join(tag.url_chunk for tag in tags)
unparsed = '/'.join(ambiguous_slugs[1:])
msgstr ""
"Project-Id-Version: WolneLektury\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-10-11 15:45+0200\n"
-"PO-Revision-Date: 2011-10-11 15:46+0100\n"
+"POT-Creation-Date: 2012-01-10 13:04+0100\n"
+"PO-Revision-Date: 2012-01-10 13:04+0100\n"
"Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: pl\n"
#: templates/base.html.py:120
#: templates/base.html:126
#: templates/base.html.py:132
-#: templates/catalogue/book_detail.html:208
+#: templates/catalogue/book_detail.html:211
#: templates/catalogue/book_fragments.html:33
#: templates/catalogue/differentiate_tags.html:23
#: templates/catalogue/search_multiple_hits.html:29
#: templates/catalogue/search_too_short.html:19
-#: templates/catalogue/tagged_object_list.html:142
+#: templates/catalogue/tagged_object_list.html:143
msgid "Close"
msgstr "Zamknij"
#: templates/base.html:122
#: templates/base.html.py:128
#: templates/base.html:134
-#: templates/catalogue/book_detail.html:210
+#: templates/catalogue/book_detail.html:213
#: templates/catalogue/book_fragments.html:35
#: templates/catalogue/differentiate_tags.html:25
#: templates/catalogue/search_multiple_hits.html:31
#: templates/catalogue/search_too_short.html:21
-#: templates/catalogue/tagged_object_list.html:144
+#: templates/catalogue/tagged_object_list.html:145
msgid "Loading"
msgstr "Ładowanie"
#: templates/catalogue/book_list.html:13
#: templates/catalogue/main_page.html:31
#: templates/catalogue/search_form.html:3
-#: templates/catalogue/tagged_object_list.html:44
+#: templates/catalogue/tagged_object_list.html:45
#: templates/info/base.html:12
#: templates/lesmianator/lesmianator.html:14
#: templates/lessons/document_list.html:34
#: templates/catalogue/book_detail.html:53
#: templates/catalogue/book_detail.html:56
#: templates/catalogue/book_detail.html:59
+#: templates/catalogue/book_detail.html:62
#: templates/catalogue/tagged_object_list.html:37
#: templates/catalogue/tagged_object_list.html:38
#: templates/catalogue/tagged_object_list.html:39
#: templates/catalogue/tagged_object_list.html:40
+#: templates/catalogue/tagged_object_list.html:41
msgid "for reading"
msgstr "do czytania"
msgstr "Pobierz plik EPUB"
#: templates/catalogue/book_detail.html:53
+#: templates/catalogue/book_detail.html:56
#: templates/catalogue/tagged_object_list.html:38
+#: templates/catalogue/tagged_object_list.html:39
msgid "on mobile devices"
msgstr "na urządzeniach mobilnych"
#: templates/catalogue/book_detail.html:56
+msgid "Download MOBI"
+msgstr "Pobierz plik MOBI"
+
+#: templates/catalogue/book_detail.html:59
msgid "Download TXT"
msgstr "Pobierz plik TXT"
-#: templates/catalogue/book_detail.html:56
-#: templates/catalogue/tagged_object_list.html:40
+#: templates/catalogue/book_detail.html:59
+#: templates/catalogue/tagged_object_list.html:41
msgid "on small displays, for example mobile phones"
msgstr "na małych ekranach, np. na komórce"
-#: templates/catalogue/book_detail.html:59
+#: templates/catalogue/book_detail.html:62
msgid "Download ODT"
msgstr "Pobierz plik ODT"
-#: templates/catalogue/book_detail.html:59
-#: templates/catalogue/tagged_object_list.html:39
+#: templates/catalogue/book_detail.html:62
+#: templates/catalogue/tagged_object_list.html:40
msgid "and editing using"
msgstr "i edytowania przy pomocy"
-#: templates/catalogue/book_detail.html:64
+#: templates/catalogue/book_detail.html:67
msgid "Audiobooks"
msgstr "Audiobooki"
-#: templates/catalogue/book_detail.html:78
+#: templates/catalogue/book_detail.html:81
msgid "Artist"
msgstr "Czyta"
-#: templates/catalogue/book_detail.html:79
+#: templates/catalogue/book_detail.html:82
msgid "Director"
msgstr "Reżyseruje"
-#: templates/catalogue/book_detail.html:107
+#: templates/catalogue/book_detail.html:110
msgid "Audiobooks were prepared as a part of the projects:"
msgstr "Audiobooki przygotowane w ramach projektów:"
-#: templates/catalogue/book_detail.html:112
+#: templates/catalogue/book_detail.html:115
#, python-format
msgid "%(cs)s, funded by %(fb)s"
msgstr "%(cs)s, finansowanego przez %(fb)s"
-#: templates/catalogue/book_detail.html:124
+#: templates/catalogue/book_detail.html:127
#, python-format
msgid "Audiobooks were prepared as a part of the %(cs)s project funded by %(fb)s."
msgstr "Audiobooki przygotowane w ramach projektu %(cs)s finansowanego przez %(fb)s."
-#: templates/catalogue/book_detail.html:126
+#: templates/catalogue/book_detail.html:129
#, python-format
msgid "Audiobooks were prepared as a part of the %(cs)s project."
msgstr "Audiobooki przygotowane w ramach projektu %(cs)s."
-#: templates/catalogue/book_detail.html:152
+#: templates/catalogue/book_detail.html:155
msgid "Details"
msgstr "O utworze"
-#: templates/catalogue/book_detail.html:155
+#: templates/catalogue/book_detail.html:158
msgid "Author"
msgstr "Autor"
-#: templates/catalogue/book_detail.html:161
+#: templates/catalogue/book_detail.html:164
msgid "Epoch"
msgstr "Epoka"
-#: templates/catalogue/book_detail.html:167
+#: templates/catalogue/book_detail.html:170
msgid "Kind"
msgstr "Rodzaj"
-#: templates/catalogue/book_detail.html:173
+#: templates/catalogue/book_detail.html:176
msgid "Genre"
msgstr "Gatunek"
-#: templates/catalogue/book_detail.html:179
+#: templates/catalogue/book_detail.html:182
msgid "Other resources"
msgstr "W innych miejscach"
-#: templates/catalogue/book_detail.html:182
+#: templates/catalogue/book_detail.html:185
msgid "Source of the book"
msgstr "Źródło lektury"
-#: templates/catalogue/book_detail.html:185
+#: templates/catalogue/book_detail.html:188
msgid "Book on the Editor's Platform"
msgstr "Utwór na Platformie Redakcyjnej"
-#: templates/catalogue/book_detail.html:188
+#: templates/catalogue/book_detail.html:191
msgid "Book description on Lektury.Gazeta.pl"
msgstr "Opis lektury w Lektury.Gazeta.pl"
-#: templates/catalogue/book_detail.html:191
+#: templates/catalogue/book_detail.html:194
msgid "Book description on Wikipedia"
msgstr "Opis lektury w Wikipedii"
-#: templates/catalogue/book_detail.html:194
+#: templates/catalogue/book_detail.html:197
msgid "View XML source"
msgstr "Źródłowy plik XML"
-#: templates/catalogue/book_detail.html:198
+#: templates/catalogue/book_detail.html:201
msgid "Work's themes "
msgstr "Motywy w utworze"
msgstr "Spis treści"
#: templates/catalogue/book_text.html:22
-#: templates/catalogue/tagged_object_list.html:133
+#: templates/catalogue/tagged_object_list.html:134
msgid "Themes"
msgstr "Motywy"
msgid "Infobox"
msgstr "Informacje"
+#: templates/catalogue/collection.html:6
+msgid "in WolneLektury.pl"
+msgstr "w WolneLektury.pl"
+
#: templates/catalogue/daisy_list.html:6
msgid "Listing of all DAISY files on WolneLektury.pl"
msgstr "Spis wszystkich plików DAISY w WolneLektury.pl"
msgstr "Zobacz całą kategorię"
#: templates/catalogue/folded_tag_list.html:13
-#: templates/catalogue/main_page.html:111
-#: templates/catalogue/main_page.html:116
-#: templates/catalogue/main_page.html:155
-#: templates/catalogue/main_page.html:350
+#: templates/catalogue/main_page.html:103
+#: templates/catalogue/main_page.html:108
+#: templates/catalogue/main_page.html:147
+#: templates/catalogue/main_page.html:342
msgid "See more"
msgstr "Zobacz więcej"
#: templates/catalogue/folded_tag_list.html:22
-#: templates/catalogue/main_page.html:318
+#: templates/catalogue/main_page.html:310
msgid "Hide"
msgstr "Zwiń"
msgstr "Półki zawierające fragment"
#: templates/catalogue/fragment_sets.html:4
-#: templates/catalogue/main_page.html:85
+#: templates/catalogue/main_page.html:76
msgid "You do not own any shelves. You can create one below, if you want to."
msgstr "Nie posiadasz żadnych półek. Jeśli chcesz, możesz utworzyć nową półkę poniżej."
msgid "Browse books by categories"
msgstr "Przeglądaj lektury według wybranych kategorii"
-#: templates/catalogue/main_page.html:69
+#: templates/catalogue/main_page.html:59
msgid "Books for every school level"
msgstr "Lektury na każdy poziom edukacji"
-#: templates/catalogue/main_page.html:71
+#: templates/catalogue/main_page.html:61
msgid "primary school"
msgstr "szkoła podstawowa"
-#: templates/catalogue/main_page.html:72
+#: templates/catalogue/main_page.html:62
msgid "gymnasium"
msgstr "gimnazjum"
-#: templates/catalogue/main_page.html:73
+#: templates/catalogue/main_page.html:63
msgid "high school"
msgstr "szkoła średnia"
-#: templates/catalogue/main_page.html:76
+#: templates/catalogue/main_page.html:67
#: templates/catalogue/user_shelves.html:2
msgid "Your shelves with books"
msgstr "Twoje półki z lekturami"
-#: templates/catalogue/main_page.html:81
+#: templates/catalogue/main_page.html:72
msgid "delete"
msgstr "usuń"
-#: templates/catalogue/main_page.html:90
+#: templates/catalogue/main_page.html:81
#: templates/catalogue/user_shelves.html:15
msgid "Create shelf"
msgstr "Utwórz półkę"
-#: templates/catalogue/main_page.html:94
+#: templates/catalogue/main_page.html:86
msgid "Create your own book set. You can share it with friends by sending them link to your shelf."
msgstr "Stwórz własny zestaw lektur. Możesz się nim później podzielić z innymi, przesyłając im link do Twojej półki."
-#: templates/catalogue/main_page.html:95
+#: templates/catalogue/main_page.html:87
msgid "You need to "
msgstr "Aby zarządzać swoimi półkami, musisz się"
-#: templates/catalogue/main_page.html:95
+#: templates/catalogue/main_page.html:87
msgid "sign in"
msgstr "zalogować"
-#: templates/catalogue/main_page.html:95
+#: templates/catalogue/main_page.html:87
msgid "to manage your shelves."
msgstr "."
-#: templates/catalogue/main_page.html:101
+#: templates/catalogue/main_page.html:93
msgid "Twórzże się!"
msgstr ""
+#: templates/catalogue/main_page.html:95
#: templates/catalogue/main_page.html:103
-#: templates/catalogue/main_page.html:111
msgid "Wolne Lektury Widget"
msgstr "Widżet Wolne Lektury"
-#: templates/catalogue/main_page.html:104
+#: templates/catalogue/main_page.html:96
msgid "Place our widget - search engine for Wolne Lektury which gives access to free books and audiobooks - on your homepage! Just copy the HTML code below onto your page:"
msgstr "Umieść widżet – wyszukiwarkę Wolnych Lektur umożliwiającą dostęp do darmowych lektur i audiobooków – na swojej stronie WWW! Po prostu skopiuj poniższy kod HTML na swoją stronę:"
-#: templates/catalogue/main_page.html:105
+#: templates/catalogue/main_page.html:97
msgid "Insert this element in place where you want display the widget"
msgstr "Umieść ten element w miejscu gdzie chcesz wyświetlić widżet"
-#: templates/catalogue/main_page.html:108
+#: templates/catalogue/main_page.html:100
msgid "Place this element just before closing body tag: </body>"
msgstr "Umieść ten element tuż przed zamknięciem taga body: </body>"
-#: templates/catalogue/main_page.html:114
-#: templates/catalogue/main_page.html:116
+#: templates/catalogue/main_page.html:106
+#: templates/catalogue/main_page.html:108
#: templates/lessons/document_list.html:32
msgid "Hand-outs for teachers"
msgstr "Materiały pomocnicze dla nauczycieli"
-#: templates/catalogue/main_page.html:115
+#: templates/catalogue/main_page.html:107
msgid "Lessons' prospects and other ideas for using Wolnelektury.pl for teaching."
msgstr "Scenariusze lekcji i inne pomysły na wykorzytanie serwisu WolneLektury.pl podczas nauczania."
-#: templates/catalogue/main_page.html:122
-#: templates/catalogue/tagged_object_list.html:112
+#: templates/catalogue/main_page.html:114
+#: templates/catalogue/tagged_object_list.html:113
msgid "Authors"
msgstr "Autorzy"
-#: templates/catalogue/main_page.html:126
-#: templates/catalogue/tagged_object_list.html:116
+#: templates/catalogue/main_page.html:118
+#: templates/catalogue/tagged_object_list.html:117
msgid "Kinds"
msgstr "Rodzaje"
-#: templates/catalogue/main_page.html:130
-#: templates/catalogue/tagged_object_list.html:120
+#: templates/catalogue/main_page.html:122
+#: templates/catalogue/tagged_object_list.html:121
msgid "Genres"
msgstr "Gatunki"
-#: templates/catalogue/main_page.html:134
-#: templates/catalogue/tagged_object_list.html:124
+#: templates/catalogue/main_page.html:126
+#: templates/catalogue/tagged_object_list.html:125
msgid "Epochs"
msgstr "Epoki"
-#: templates/catalogue/main_page.html:140
-#: templates/catalogue/main_page.html:155
+#: templates/catalogue/main_page.html:132
+#: templates/catalogue/main_page.html:147
msgid "Themes and topics"
msgstr "Motywy i tematy"
-#: templates/catalogue/main_page.html:143
+#: templates/catalogue/main_page.html:135
msgid "Themes groups"
msgstr "Rodziny motywów"
-#: templates/catalogue/main_page.html:328
+#: templates/catalogue/main_page.html:320
msgid "News"
msgstr "Aktualności"
-#: templates/catalogue/main_page.html:332
+#: templates/catalogue/main_page.html:324
msgid "See our blog"
msgstr "Zobacz nasz blog"
-#: templates/catalogue/main_page.html:335
-#: templates/catalogue/main_page.html:341
+#: templates/catalogue/main_page.html:327
+#: templates/catalogue/main_page.html:333
msgid "You can help us!"
msgstr "Możesz nam pomóc!"
-#: templates/catalogue/main_page.html:337
+#: templates/catalogue/main_page.html:329
msgid "Become a volunteer – an editor, developer or translator."
msgstr "Zostań naszym redaktorem, programistą lub tłumaczem – wolontariuszem."
-#: templates/catalogue/main_page.html:338
+#: templates/catalogue/main_page.html:330
msgid "Gain new skills and experience."
msgstr "Zdobądź nowe umiejętności i doświadczenie."
-#: templates/catalogue/main_page.html:339
+#: templates/catalogue/main_page.html:331
msgid "Join an open project of creating an innovative online library."
msgstr "Weź udział w otwartym projekcie i twórz innowacyjną bibliotekę internetową."
-#: templates/catalogue/main_page.html:344
-#: templates/catalogue/main_page.html:350
+#: templates/catalogue/main_page.html:336
+#: templates/catalogue/main_page.html:342
msgid "About us"
msgstr "O projekcie"
-#: templates/catalogue/main_page.html:346
+#: templates/catalogue/main_page.html:338
msgid ""
"\n"
"\t\t\tInternet library with school readings “Wolne Lektury” (<a href=\"http://wolnelektury.pl\">www.wolnelektury.pl</a>) is a project made by Modern Poland Foundation. It started in 2007 and shares school readings, which are recommended by Ministry of National Education and are in public domain.\n"
"\n"
"Biblioteka internetowa z lekturami szkolnymi „Wolne Lektury” (<a href=\"http://wolnelektury.pl\">www.wolnelektury.pl</a>) to projekt realizowany przez fundację Nowoczesna Polska. Działa od 2007 roku i udostępnia w swoich zbiorach lektury szkolne, które są zalecane do użytku przez Ministerstwo Edukacji Narodowej i które trafiły już do domeny publicznej."
-#: templates/catalogue/main_page.html:359
+#: templates/catalogue/main_page.html:351
msgid ""
"\n"
"Portions of this page are modifications based on work created and <a href=\"http://code.google.com/policies.html\">shared by Google</a> and used\n"
msgstr "Wyszukiwanie w WolneLektury.pl"
#: templates/catalogue/search_no_hits.html:14
-#: templates/catalogue/tagged_object_list.html:101
+#: templates/catalogue/tagged_object_list.html:103
msgid "Sorry! Search cirteria did not match any resources."
msgstr "Przepraszamy! Brak wyników spełniających kryteria podane w zapytaniu."
msgid "Choose books' formats which you want to download:"
msgstr "Wybierz formaty książek, które chcesz pobrać:"
-#: templates/catalogue/tagged_object_list.html:41
#: templates/catalogue/tagged_object_list.html:42
+#: templates/catalogue/tagged_object_list.html:43
msgid "for listening"
msgstr "do słuchania"
-#: templates/catalogue/tagged_object_list.html:41
+#: templates/catalogue/tagged_object_list.html:42
msgid "on favourite MP3 player"
msgstr "w ulubionym odtwarzaczu MP3"
-#: templates/catalogue/tagged_object_list.html:42
+#: templates/catalogue/tagged_object_list.html:43
msgid "open format"
msgstr "otwarty format"
-#: templates/catalogue/tagged_object_list.html:42
+#: templates/catalogue/tagged_object_list.html:43
msgid "Xiph.org Foundation"
msgstr "fundacji Xiph.Org"
-#: templates/catalogue/tagged_object_list.html:44
+#: templates/catalogue/tagged_object_list.html:45
#: templates/lessons/ajax_document_detail.html:3
msgid "Download"
msgstr "Pobierz"
-#: templates/catalogue/tagged_object_list.html:44
+#: templates/catalogue/tagged_object_list.html:45
msgid "Updating list of books' formats on the shelf"
msgstr "Uaktualnianie listy formatów książek na półce."
-#: templates/catalogue/tagged_object_list.html:44
+#: templates/catalogue/tagged_object_list.html:45
msgid "cancel"
msgstr "anuluj"
-#: templates/catalogue/tagged_object_list.html:49
+#: templates/catalogue/tagged_object_list.html:50
msgid "Share this shelf"
msgstr "Podziel się tą półką"
-#: templates/catalogue/tagged_object_list.html:51
+#: templates/catalogue/tagged_object_list.html:52
msgid "Copy this link and share it with other people to let them see your shelf."
msgstr "Skopiuj ten link i przekaż go osobom, z którymi chcesz się podzielić tą półką."
-#: templates/catalogue/tagged_object_list.html:61
+#: templates/catalogue/tagged_object_list.html:62
#: templates/pdcounter/author_detail.html:27
msgid "Read work's study of this author on Lektury.Gazeta.pl"
msgstr "Przeczytaj omówienia utworów autora w serwisie Lektury.Gazeta.pl"
-#: templates/catalogue/tagged_object_list.html:63
+#: templates/catalogue/tagged_object_list.html:64
#, python-format
msgid "Read study of epoch %(last_tag)s on Lektury.Gazeta.pl"
msgstr "Przeczytaj omówienia z epoki %(last_tag)s w serwisie Lektury.Gazeta.pl"
-#: templates/catalogue/tagged_object_list.html:65
+#: templates/catalogue/tagged_object_list.html:66
#, python-format
msgid "Read study of kind %(last_tag)s on Lektury.Gazeta.pl"
msgstr "Przeczytaj omówienia z rodzaju %(last_tag)s w serwisie Lektury.Gazeta.pl"
-#: templates/catalogue/tagged_object_list.html:67
+#: templates/catalogue/tagged_object_list.html:68
#, python-format
msgid "Read study of genre %(last_tag)s on Lektury.Gazeta.pl"
msgstr "Przeczytaj omówienia z gatunku %(last_tag)s w serwisie Lektury.Gazeta.pl"
-#: templates/catalogue/tagged_object_list.html:69
+#: templates/catalogue/tagged_object_list.html:70
msgid "Read related study on Lektury.Gazeta.pl"
msgstr "Przeczytaj powiązane omówienia w serwisie Lektury.Gazeta.pl"
-#: templates/catalogue/tagged_object_list.html:77
+#: templates/catalogue/tagged_object_list.html:78
#: templates/pdcounter/author_detail.html:32
msgid "Read article about this author on Wikipedia"
msgstr "Przeczytaj artykuł o autorze w Wikipedii"
-#: templates/catalogue/tagged_object_list.html:79
+#: templates/catalogue/tagged_object_list.html:80
#, python-format
msgid "Read article about epoch %(last_tag)s on Wikipedia"
msgstr "Przeczytaj artykuł o epoce %(last_tag)s w Wikipedii"
-#: templates/catalogue/tagged_object_list.html:81
+#: templates/catalogue/tagged_object_list.html:82
#, python-format
msgid "Read article about kind %(last_tag)s on Wikipedia"
msgstr "Przeczytaj artykuł o rodzaju %(last_tag)s w Wikipedii"
-#: templates/catalogue/tagged_object_list.html:83
+#: templates/catalogue/tagged_object_list.html:84
#, python-format
msgid "Read article about genre %(last_tag)s on Wikipedia"
msgstr "Przeczytaj artykuł o gatunku %(last_tag)s w Wikipedii"
-#: templates/catalogue/tagged_object_list.html:85
+#: templates/catalogue/tagged_object_list.html:86
msgid "Read related article on Wikipedia"
msgstr "Przeczytaj powiązany artykuł w Wikipedii"
-#: templates/catalogue/tagged_object_list.html:95
+#: templates/catalogue/tagged_object_list.html:96
msgid "Delete"
msgstr "Usuń"
#~ "to profesjonalne nagrania tekstów literackich z naszego zbioru dostępne "
#~ "na wolnej licencji w formatach MP3, Ogg Vorbis oraz w systemie DAISY."
-#~ msgid "Download MP3"
-#~ msgstr "Pobierz plik MP3"
-
#~ msgid "Download Ogg Vorbis"
#~ msgstr "Pobierz plik Ogg Vorbis"
--- /dev/null
+{% extends "catalogue/book_list.html" %}
+{% load i18n %}
+
+{% block bodyid %}collection{% endblock %}
+
+{% block title %}{{ context.collection.title }} {% trans "in WolneLektury.pl" %}{% endblock %}
+
+{% block book_list_header %}{{ context.collection.title }}{% endblock %}
+
+{% block book_list_info %}
+{{ context.collection.description|safe }}
+{% endblock %}
<p id="tags-description">↓ {% trans "Browse books by categories" %} ↓</p>
<div id="propaganda">
+ {% chunk "promo" %}
+
+ {% comment %}
<h2>Spot promocyjny</h2>
<p><iframe width="260" height="162"
src="http://www.youtube.com/embed/IteV_EoTrZE"
frameborder="0" allowfullscreen></iframe></p>
-
-
- <h2>Turniej Elektrybałtów</h2>
- <p><a target="_blank" href='http://turniej.wolnelektury.pl'>
- <img src='{{ STATIC_URL }}img/turniej-maly.png' alt='Logo Turnieju' width='60' height='64' style='float:left;margin:1em;' />
- </a>
- Trwa otwarty konkurs na najlepszego <strong>automatycznego poetę</strong>!
- Zobacz, co potrafią nadesłane programy.
- </p>
- <p class="see-more"><a target="_blank" href="http://turniej.wolnelektury.pl" >Idź do strony konkursu ⇒</a></p>
-
+ {% endcomment %}
{% comment %} <h2>{% trans "Books for every school level" %}</h2>
<ul>