From: Radek Czajka Date: Tue, 10 Jan 2012 15:22:05 +0000 (+0100) Subject: add collection for Boy X-Git-Url: https://git.mdrn.pl/wolnelektury.git/commitdiff_plain/e18d543fa8e2bd224880a79fb71ea8726b1d45bf?ds=sidebyside;hp=--cc add collection for Boy --- e18d543fa8e2bd224880a79fb71ea8726b1d45bf diff --git a/apps/catalogue/admin.py b/apps/catalogue/admin.py index 88c985f3c..61db42fe6 100644 --- a/apps/catalogue/admin.py +++ b/apps/catalogue/admin.py @@ -6,7 +6,7 @@ from django.contrib import admin 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): @@ -54,6 +54,11 @@ class FragmentAdmin(TaggableModelAdmin): 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) diff --git a/apps/catalogue/fixtures/collection-boy.json b/apps/catalogue/fixtures/collection-boy.json new file mode 100644 index 000000000..9a0e7781a --- /dev/null +++ b/apps/catalogue/fixtures/collection-boy.json @@ -0,0 +1,19 @@ +[ + { + "pk": "promo", + "model": "chunks.chunk", + "fields": { + "content": "

Biblioteczka Boya

\r\n\r\n

T\u0142umaczenia literatury francuskiej i nie tylko.

\r\n\r\n

Biblioteczka Boya \u21d2

", + "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 diff --git a/apps/catalogue/locale/pl/LC_MESSAGES/django.mo b/apps/catalogue/locale/pl/LC_MESSAGES/django.mo index 31849200b..6a4a5590b 100644 Binary files a/apps/catalogue/locale/pl/LC_MESSAGES/django.mo and b/apps/catalogue/locale/pl/LC_MESSAGES/django.mo differ diff --git a/apps/catalogue/locale/pl/LC_MESSAGES/django.po b/apps/catalogue/locale/pl/LC_MESSAGES/django.po index ca4f243f8..648a1ab33 100644 --- a/apps/catalogue/locale/pl/LC_MESSAGES/django.po +++ b/apps/catalogue/locale/pl/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" 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 \n" "Language-Team: LANGUAGE \n" "Language: \n" @@ -22,218 +22,226 @@ msgstr "" 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 "

To maintain your shelves you need to be logged in.

" msgstr "

Aby zarządzać swoimi półkami, musisz się zalogować.

" -#: views.py:553 +#: views.py:531 msgid "

Shelves were sucessfully saved.

" msgstr "

Półki zostały zapisane.

" -#: 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 "

Shelf %s was successfully removed

" msgstr "

Półka %s została usunięta

" -#: views.py:748 +#: views.py:738 #, python-format msgid "" "An error occurred: %(exception)s\n" @@ -244,15 +252,36 @@ msgstr "" "\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" @@ -275,8 +304,5 @@ msgstr "Błąd podczas importowania pliku: %r" #~ msgid "book stub" #~ msgstr "zapowiedź książki" -#~ msgid "book stubs" -#~ msgstr "zapowiedzi książek" - #~ msgid "

Shelf %s was successfully created

" #~ msgstr "

Półka %s została utworzona

" diff --git a/apps/catalogue/migrations/0017_auto__add_collection.py b/apps/catalogue/migrations/0017_auto__add_collection.py new file mode 100644 index 000000000..2e9ca4185 --- /dev/null +++ b/apps/catalogue/migrations/0017_auto__add_collection.py @@ -0,0 +1,147 @@ +# 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'] diff --git a/apps/catalogue/models.py b/apps/catalogue/models.py index 22ed32510..1417519f7 100644 --- a/apps/catalogue/models.py +++ b/apps/catalogue/models.py @@ -961,6 +961,25 @@ class FileRecord(models.Model): 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 diff --git a/apps/catalogue/urls.py b/apps/catalogue/urls.py index c770892d9..0e0da4b4a 100644 --- a/apps/catalogue/urls.py +++ b/apps/catalogue/urls.py @@ -13,7 +13,8 @@ urlpatterns = patterns('catalogue.views', url(r'^polki/$', 'user_shelves', name='user_shelves'), url(r'^polki/(?P[a-zA-Z0-9-]+)/usun/$', 'delete_shelf', name='delete_shelf'), url(r'^polki/(?P[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[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[a-zA-Z0-9-]+)/polki/', 'book_sets', name='book_shelves'), diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index c80853437..bf0c42f70 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -70,7 +70,8 @@ def main_page(request): 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() @@ -95,6 +96,17 @@ def daisy_list(request): 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:]) diff --git a/wolnelektury/locale/pl/LC_MESSAGES/django.mo b/wolnelektury/locale/pl/LC_MESSAGES/django.mo index 1326a31b8..f40dee295 100644 Binary files a/wolnelektury/locale/pl/LC_MESSAGES/django.mo and b/wolnelektury/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wolnelektury/locale/pl/LC_MESSAGES/django.po b/wolnelektury/locale/pl/LC_MESSAGES/django.po index 15a5dcc26..c256843ce 100644 --- a/wolnelektury/locale/pl/LC_MESSAGES/django.po +++ b/wolnelektury/locale/pl/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" 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 \n" "Language-Team: LANGUAGE \n" "Language: pl\n" @@ -129,24 +129,24 @@ msgstr "" #: 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" @@ -197,7 +197,7 @@ msgstr "Szukaj" #: 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 @@ -273,10 +273,12 @@ msgstr "Pobierz plik PDF" #: 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" @@ -290,104 +292,110 @@ msgid "Download EPUB" 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" @@ -508,7 +516,7 @@ msgid "Table of contents" 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" @@ -520,6 +528,10 @@ msgstr "Nota red." 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" @@ -551,15 +563,15 @@ msgid "Show full category" 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ń" @@ -568,7 +580,7 @@ msgid "Shelves containing fragment" 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." @@ -615,143 +627,143 @@ msgstr[2] "" 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” (www.wolnelektury.pl) 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" @@ -760,7 +772,7 @@ msgstr "" "\n" "Biblioteka internetowa z lekturami szkolnymi „Wolne Lektury” (www.wolnelektury.pl) 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 shared by Google and used\n" @@ -790,7 +802,7 @@ msgid "Search in WolneLektury.pl" 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." @@ -824,93 +836,93 @@ msgstr "Pobierz wszystkie książki z tej półki" 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ń" @@ -1064,9 +1076,6 @@ msgstr "Zaloguj się" #~ "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" diff --git a/wolnelektury/templates/catalogue/collection.html b/wolnelektury/templates/catalogue/collection.html new file mode 100755 index 000000000..c1f1ae4d5 --- /dev/null +++ b/wolnelektury/templates/catalogue/collection.html @@ -0,0 +1,12 @@ +{% 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 %} diff --git a/wolnelektury/templates/catalogue/main_page.html b/wolnelektury/templates/catalogue/main_page.html index ba9e6765b..b9cb5a335 100644 --- a/wolnelektury/templates/catalogue/main_page.html +++ b/wolnelektury/templates/catalogue/main_page.html @@ -40,21 +40,14 @@ a free license↓ {% trans "Browse books by categories" %} ↓

+ {% chunk "promo" %} + + {% comment %}

Spot promocyjny

- - -

Turniej Elektrybałtów

-

- Logo Turnieju - - Trwa otwarty konkurs na najlepszego automatycznego poetę! - Zobacz, co potrafią nadesłane programy. -

-

Idź do strony konkursu ⇒

- + {% endcomment %} {% comment %}

{% trans "Books for every school level" %}