"""
allowed_methods = ['GET']
- fields = ['title', 'parent'] + Book.file_types + [
+ fields = ['title', 'parent'] + Book.formats + [
'media', 'url'] + category_singular.keys()
@piwik_track
else:
return ''
return get_file
-for format in Book.file_types:
+for format in Book.formats:
setattr(BooksHandler, format, _file_getter(format))
def book_dict(book, fields=None):
all_fields = ['url', 'title', 'description',
'gazeta_link', 'wiki_link',
- ] + Book.file_types + [
- 'mp3', 'ogg', 'daisy',
+ ] + Book.formats + BookMedia.formats + [
'parent', 'parent_number',
'tags',
'license', 'license_description', 'source_name',
obj = {}
for field in fields:
- if field in Book.file_types:
+ if field in Book.formats:
f = getattr(book, field+'_file')
if f:
obj[field] = {
'size': f.size,
}
- elif field in ('mp3', 'ogg', 'daisy'):
+ elif field in BookMedia.formats:
media = []
for m in book.media.filter(type=field):
media.append({
return new_set
-FORMATS = (
- ('mp3', 'MP3'),
- ('ogg', 'OGG'),
- ('pdf', 'PDF'),
- ('odt', 'ODT'),
- ('txt', 'TXT'),
- ('epub', 'EPUB'),
- ('daisy', 'DAISY'),
- ('mobi', 'MOBI'),
-)
+FORMATS = [(f, f.upper()) for f in Book.ebook_formats]
class DownloadFormatsForm(forms.Form):
- formats = forms.MultipleChoiceField(required=False, choices=FORMATS, widget=forms.CheckboxSelectMultiple)
+ formats = forms.MultipleChoiceField(required=False, choices=FORMATS,
+ widget=forms.CheckboxSelectMultiple)
def __init__(self, *args, **kwargs):
super(DownloadFormatsForm, self).__init__(*args, **kwargs)
build_txt=options.get('build_txt'),
build_pdf=options.get('build_pdf'),
build_mobi=options.get('build_mobi'))
+ fileid = book.fileid()
+ for ebook_format in Book.ebook_formats:
+ if os.path.isfile(file_base + '.' + ebook_format):
+ getattr(book, '%s_file' % ebook_format).save(
+ '%s.%s' % (fileid, ebook_format),
+ File(file(file_base + '.' + ebook_format)))
+ if verbose:
+ print "Importing %s.%s" % (file_base, ebook_format)
- if os.path.isfile(file_base + '.pdf'):
- book.pdf_file.save('%s.pdf' % book.slug, File(file(file_base + '.pdf')))
- if verbose:
- print "Importing %s.pdf" % file_base
- if os.path.isfile(file_base + '.mobi'):
- book.mobi_file.save('%s.mobi' % book.slug, File(file(file_base + '.mobi')))
- if verbose:
- print "Importing %s.mobi" % file_base
- if os.path.isfile(file_base + '.epub'):
- book.epub_file.save('%s.epub' % book.slug, File(file(file_base + '.epub')))
- if verbose:
- print "Importing %s.epub" % file_base
- if os.path.isfile(file_base + '.txt'):
- book.txt_file.save('%s.txt' % book.slug, File(file(file_base + '.txt')))
- if verbose:
- print "Importing %s.txt" % file_base
book.save()
def import_picture(self, file_path, options):
make_option('-e', '--exclude', dest='exclude', metavar='SLUG,...',
help='Exclude specific books by slug')
)
- help = 'Prepare data for Lesmianator.'
+ help = 'Prepare ZIP package with files of given type.'
args = '[%s] output_path.zip' % '|'.join(ftypes)
def handle(self, ftype, path, **options):
include = options.get('include')
exclude = options.get('exclude')
- if ftype in Book.file_types:
+ if ftype in Book.formats:
field = "%s_file" % ftype
else:
print self.style.ERROR('Unknown file type.')
# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
+from collections import namedtuple
from datetime import datetime
from django.db import models
('book', _('book')),
)
-MEDIA_FORMATS = (
- ('odt', _('ODT file')),
- ('mp3', _('MP3 file')),
- ('ogg', _('OGG file')),
- ('daisy', _('DAISY file')),
-)
-
# not quite, but Django wants you to set a timeout
CACHE_FOREVER = 2419200 # 28 days
# how to put related book's slug here?
if not ext:
- if media.type == 'daisy':
- ext = 'daisy.zip'
- else:
- ext = media.type
+ # BookMedia case
+ ext = media.formats[media.type].ext
if media is None or not media.name:
name = slughifi(filename.split(".")[0])
else:
class BookMedia(models.Model):
- type = models.CharField(_('type'), choices=MEDIA_FORMATS, max_length="100")
+ FileFormat = namedtuple("FileFormat", "name ext")
+ formats = SortedDict([
+ ('mp3', FileFormat(name='MP3', ext='mp3')),
+ ('ogg', FileFormat(name='Ogg Vorbis', ext='ogg')),
+ ('daisy', FileFormat(name='DAISY', ext='daisy.zip')),
+ ])
+ format_choices = [(k, _('%s file') % t.name)
+ for k, t in formats.items()]
+
+ type = models.CharField(_('type'), choices=format_choices, max_length="100")
name = models.CharField(_('name'), max_length="100")
file = OverwritingFileField(_('file'), upload_to=book_upload_path())
uploaded_at = models.DateTimeField(_('creation date'), auto_now_add=True, editable=False)
wiki_link = models.CharField(blank=True, max_length=240)
# files generated during publication
- file_types = ['epub', 'html', 'mobi', 'pdf', 'txt', 'xml']
-
+ ebook_formats = ['pdf', 'epub', 'mobi', 'txt']
+ formats = ebook_formats + ['html', 'xml']
+
parent = models.ForeignKey('self', blank=True, null=True, related_name='children')
objects = models.Manager()
tagged = managers.ModelTaggedItemManager(Tag)
return book_tag
def has_media(self, type):
- if type in Book.file_types:
+ if type in Book.formats:
return bool(getattr(self, "%s_file" % type))
else:
return self.media.filter(type=type).exists()
def get_media(self, type):
if self.has_media(type):
- if type in Book.file_types:
+ if type in Book.formats:
return getattr(self, "%s_file" % type)
else:
return self.media.filter(type=type)
# files generated during publication
if self.has_media("html"):
formats.append(u'<a href="%s">%s</a>' % (reverse('book_text', args=[self.fileid()]), _('Read online')))
- if self.has_media("pdf"):
- formats.append(u'<a href="%s">PDF</a>' % self.get_media('pdf').url)
- if self.has_media("mobi"):
- formats.append(u'<a href="%s">MOBI</a>' % self.get_media('mobi').url)
- if self.root_ancestor.has_media("epub"):
- formats.append(u'<a href="%s">EPUB</a>' % self.root_ancestor.get_media('epub').url)
- if self.has_media("txt"):
- formats.append(u'<a href="%s">TXT</a>' % self.get_media('txt').url)
+ for ebook_format in self.ebook_formats:
+ if self.has_media(ebook_format):
+ formats.append(u'<a href="%s">%s</a>' % (
+ self.get_media(ebook_format).url,
+ ebook_format.upper()
+ ))
# other files
for m in self.media.order_by('type'):
formats.append(u'<a href="%s">%s</a>' % (m.file.url, m.type.upper()))
cache.set(cache_key, short_html, CACHE_FOREVER)
return mark_safe(short_html)
- @property
- def root_ancestor(self):
- """ returns the oldest ancestor """
+ def mini_box(self):
+ if self.id:
+ cache_key = "Book.mini_boxs/%d" % (self.id, )
+ short_html = cache.get(cache_key)
+ else:
+ short_html = None
- if not hasattr(self, '_root_ancestor'):
- book = self
- while book.parent:
- book = book.parent
- self._root_ancestor = book
- return self._root_ancestor
+ if short_html is None:
+ authors = self.tags.filter(category='author')
+ short_html = unicode(render_to_string('catalogue/book_mini_box.html',
+ {'book': self, 'authors': authors, 'STATIC_URL': settings.STATIC_URL}))
+
+ if self.id:
+ cache.set(cache_key, short_html, CACHE_FOREVER)
+ return mark_safe(short_html)
def has_description(self):
return len(self.description) > 0
has_description.boolean = True
# ugly ugly ugly
- def has_odt_file(self):
- return bool(self.has_media("odt"))
- has_odt_file.short_description = 'ODT'
- has_odt_file.boolean = True
-
def has_mp3_file(self):
return bool(self.has_media("mp3"))
has_mp3_file.short_description = 'MP3'
# remove zip with all mobi files
remove_zip(settings.ALL_MOBI_ZIP)
- def build_epub(self, remove_descendants=True):
- """ (Re)builds the epub file.
- If book has a parent, does nothing.
- Unless remove_descendants is False, descendants' epubs are removed.
- """
+ def build_epub(self):
+ """(Re)builds the epub file."""
from django.core.files import File
from catalogue.utils import remove_zip
- if self.parent:
- # don't need an epub
- return
-
epub = self.wldocument().as_epub()
- try:
- epub.transform(ORMDocProvider(self), self.fileid(), output_file=epub_file)
- self.epub_file.save('%s.epub' % self.fileid(), File(open(epub.get_filename())))
- except NoDublinCore:
- pass
-
- book_descendants = list(self.children.all())
- while len(book_descendants) > 0:
- child_book = book_descendants.pop(0)
- if remove_descendants and child_book.has_epub_file():
- child_book.epub_file.delete()
- # save anyway, to refresh short_html
- child_book.save()
- book_descendants += list(child_book.children.all())
+ self.epub_file.save('%s.epub' % self.fileid(),
+ File(open(epub.get_filename())))
# remove zip package with all epub files
remove_zip(settings.ALL_EPUB_ZIP)
book.build_txt()
if not settings.NO_BUILD_EPUB and build_epub:
- book.root_ancestor.build_epub()
+ book.build_epub()
if not settings.NO_BUILD_PDF and build_pdf:
- book.root_ancestor.build_pdf()
+ book.build_pdf()
if not settings.NO_BUILD_MOBI and build_mobi:
book.build_mobi()
book_descendants = list(book.children.all())
# add l-tag to descendants and their fragments
- # delete unnecessary EPUB files
while len(book_descendants) > 0:
child_book = book_descendants.pop(0)
child_book.tags = list(child_book.tags) + [book_tag]
# add the file fields
-for t in Book.file_types:
+for t in Book.formats:
field_name = "%s_file" % t
models.FileField(_("%s file" % t.upper()),
upload_to=book_upload_path(t),
urlpatterns = patterns('catalogue.views',
- url(r'^$', 'main_page', name='main_page'),
+ url(r'^$', 'catalogue', name='catalogue'),
url(r'^polki/(?P<shelf>[a-zA-Z0-9-]+)/formaty/$', 'shelf_book_formats', name='shelf_book_formats'),
url(r'^polki/(?P<shelf>[a-zA-Z0-9-]+)/(?P<book>%s)/usun$' % Book.URLID_RE, 'remove_from_shelf', name='remove_from_shelf'),
url(r'^polki/$', 'user_shelves', name='user_shelves'),
super(JSONResponse, self).__init__(data, mimetype="application/json", **kwargs)
-def main_page(request):
- if request.user.is_authenticated():
- shelves = models.Tag.objects.filter(category='set', user=request.user)
- new_set_form = forms.NewSetForm()
-
+def catalogue(request):
tags = models.Tag.objects.exclude(category__in=('set', 'book'))
for tag in tags:
tag.count = tag.get_count()
fragment_tags = categories.get('theme', [])
form = forms.SearchForm()
- return render_to_response('catalogue/main_page.html', locals(),
+ return render_to_response('catalogue/catalogue.html', locals(),
context_instance=RequestContext(request))
if form.is_valid():
formats = form.cleaned_data['formats']
if len(formats) == 0:
- formats = ['pdf', 'epub', 'mobi', 'odt', 'txt']
+ formats = models.Book.ebook_formats
# Create a ZIP archive
temp = tempfile.TemporaryFile()
archive = zipfile.ZipFile(temp, 'w')
- already = set()
for book in collect_books(models.Book.tagged.with_all(shelf)):
fileid = book.fileid()
- if 'pdf' in formats and book.pdf_file:
- filename = book.pdf_file.path
- archive.write(filename, str('%s.pdf' % fileid))
- if 'mobi' in formats and book.mobi_file:
- filename = book.mobi_file.path
- archive.write(filename, str('%s.mobi' % fileid))
- if book.root_ancestor not in already and 'epub' in formats and book.root_ancestor.epub_file:
- filename = book.root_ancestor.epub_file.path
- archive.write(filename, str('%s.epub' % book.root_ancestor.fileid()))
- already.add(book.root_ancestor)
- if 'odt' in formats and book.has_media("odt"):
- for file in book.get_media("odt"):
- filename = file.file.path
- archive.write(filename, str('%s.odt' % slughifi(file.name)))
- if 'txt' in formats and book.txt_file:
- filename = book.txt_file.path
- archive.write(filename, str('%s.txt' % fileid))
+ for ebook_format in models.Book.ebook_formats:
+ if ebook_format in formats and book.has_media(ebook_format):
+ filename = book.get_media(ebook_format).path
+ archive.write(filename, str('%s.%s' % (fileid, ebook_format)))
archive.close()
response = HttpResponse(content_type='application/zip', mimetype='application/x-zip-compressed')
"""
shelf = get_object_or_404(models.Tag, slug=shelf, category='set')
- formats = {'pdf': False, 'epub': False, 'mobi': False, 'odt': False, 'txt': False}
+ formats = {}
+ for ebook_format in models.Book.ebook_formats:
+ formats[ebook_format] = False
for book in collect_books(models.Book.tagged.with_all(shelf)):
- if book.pdf_file:
- formats['pdf'] = True
- if book.root_ancestor.epub_file:
- formats['epub'] = True
- if book.mobi_file:
- formats['mobi'] = True
- if book.txt_file:
- formats['txt'] = True
- for format in ('odt',):
- if book.has_media(format):
- formats[format] = True
+ for ebook_format in models.Book.ebook_formats:
+ if book.has_media(ebook_format):
+ formats[ebook_format] = True
return HttpResponse(LazyEncoder().encode(formats))
kwargs = models.Book.split_fileid(book)
url = None
- if format in ('pdf', 'epub', 'mobi'):
+ if format in models.Book.ebook_formats:
url = models.Book.zip_format(format)
elif format == 'audiobook' and kwargs is not None:
book = get_object_or_404(models.Book, **kwargs)
from infopages.models import InfoPage
class InfoPageAdmin(TranslationAdmin):
- list_display = ('title',)
+ list_display = ('title', 'slug', 'main_page')
admin.site.register(InfoPage, InfoPageAdmin)
\ No newline at end of file
--- /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):
+
+ # Deleting field 'InfoPage.page_title'
+ db.delete_column('infopages_infopage', 'page_title')
+
+ # Deleting field 'InfoPage.page_title_en'
+ db.delete_column('infopages_infopage', 'page_title_en')
+
+ # Deleting field 'InfoPage.page_title_es'
+ db.delete_column('infopages_infopage', 'page_title_es')
+
+ # Deleting field 'InfoPage.page_title_fr'
+ db.delete_column('infopages_infopage', 'page_title_fr')
+
+ # Deleting field 'InfoPage.page_title_uk'
+ db.delete_column('infopages_infopage', 'page_title_uk')
+
+ # Deleting field 'InfoPage.page_title_de'
+ db.delete_column('infopages_infopage', 'page_title_de')
+
+ # Deleting field 'InfoPage.page_title_lt'
+ db.delete_column('infopages_infopage', 'page_title_lt')
+
+ # Deleting field 'InfoPage.page_title_pl'
+ db.delete_column('infopages_infopage', 'page_title_pl')
+
+ # Deleting field 'InfoPage.page_title_ru'
+ db.delete_column('infopages_infopage', 'page_title_ru')
+
+ # Adding field 'InfoPage.main_page'
+ db.add_column('infopages_infopage', 'main_page', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True), keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Adding field 'InfoPage.page_title'
+ db.add_column('infopages_infopage', 'page_title', self.gf('django.db.models.fields.CharField')(default='', max_length=120, blank=True), keep_default=False)
+
+ # Adding field 'InfoPage.page_title_en'
+ db.add_column('infopages_infopage', 'page_title_en', self.gf('django.db.models.fields.CharField')(max_length=120, null=True, blank=True), keep_default=False)
+
+ # Adding field 'InfoPage.page_title_es'
+ db.add_column('infopages_infopage', 'page_title_es', self.gf('django.db.models.fields.CharField')(max_length=120, null=True, blank=True), keep_default=False)
+
+ # Adding field 'InfoPage.page_title_fr'
+ db.add_column('infopages_infopage', 'page_title_fr', self.gf('django.db.models.fields.CharField')(max_length=120, null=True, blank=True), keep_default=False)
+
+ # Adding field 'InfoPage.page_title_uk'
+ db.add_column('infopages_infopage', 'page_title_uk', self.gf('django.db.models.fields.CharField')(max_length=120, null=True, blank=True), keep_default=False)
+
+ # Adding field 'InfoPage.page_title_de'
+ db.add_column('infopages_infopage', 'page_title_de', self.gf('django.db.models.fields.CharField')(max_length=120, null=True, blank=True), keep_default=False)
+
+ # Adding field 'InfoPage.page_title_lt'
+ db.add_column('infopages_infopage', 'page_title_lt', self.gf('django.db.models.fields.CharField')(max_length=120, null=True, blank=True), keep_default=False)
+
+ # Adding field 'InfoPage.page_title_pl'
+ db.add_column('infopages_infopage', 'page_title_pl', self.gf('django.db.models.fields.CharField')(max_length=120, null=True, blank=True), keep_default=False)
+
+ # Adding field 'InfoPage.page_title_ru'
+ db.add_column('infopages_infopage', 'page_title_ru', self.gf('django.db.models.fields.CharField')(max_length=120, null=True, blank=True), keep_default=False)
+
+ # Deleting field 'InfoPage.main_page'
+ db.delete_column('infopages_infopage', 'main_page')
+
+
+ models = {
+ 'infopages.infopage': {
+ 'Meta': {'ordering': "('main_page', 'slug')", 'object_name': 'InfoPage'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'left_column': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'left_column_de': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'left_column_en': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'left_column_es': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'left_column_fr': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'left_column_lt': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'left_column_pl': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'left_column_ru': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'left_column_uk': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'main_page': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'right_column': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'right_column_de': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'right_column_en': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'right_column_es': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'right_column_fr': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'right_column_lt': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'right_column_pl': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'right_column_ru': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'right_column_uk': ('django.db.models.fields.TextField', [], {'null': True, 'blank': True}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '120', 'db_index': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '120', 'blank': 'True'}),
+ 'title_de': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': True, 'blank': True}),
+ 'title_en': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': True, 'blank': True}),
+ 'title_es': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': True, 'blank': True}),
+ 'title_fr': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': True, 'blank': True}),
+ 'title_lt': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': True, 'blank': True}),
+ 'title_pl': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': True, 'blank': True}),
+ 'title_ru': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': True, 'blank': True}),
+ 'title_uk': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': True, 'blank': True})
+ }
+ }
+
+ complete_apps = ['infopages']
from django.utils.translation import ugettext_lazy as _
class InfoPage(models.Model):
- """
- An InfoPage is used to display a two-column flatpage
- """
+ """An InfoPage is used to display a two-column flatpage."""
- page_title = models.CharField(_('page title'), max_length=120, blank=True)
+ main_page = models.IntegerField(_('main page priority'), null=True, blank=True)
slug = models.SlugField(_('slug'), max_length=120, unique=True, db_index=True)
title = models.CharField(_('title'), max_length=120, blank=True)
left_column = models.TextField(_('left column'), blank=True)
right_column = models.TextField(_('right column'), blank=True)
class Meta:
- ordering = ('slug',)
+ ordering = ('main_page', 'slug',)
verbose_name = _('info page')
verbose_name_plural = _('info pages')
def __unicode__(self):
return self.title
+ @models.permalink
+ def get_absolute_url(self):
+ return ('infopage', [self.slug])
--- /dev/null
+{% extends "base.html" %}
+{% load i18n %}
+{% load chunks %}
+
+{% block titleextra %}:: {{ page.title }}{% endblock %}
+
+{% block metadescription %}{{ left_column|striptags|truncatewords:10 }}{% endblock %}
+
+{% block body %}
+ <h1>{{ page.title }}</h1>
+
+ {% autoescape off %}
+ <div class="column-left">
+ {{ left_column }}
+ </div>
+ <div class="column-right">
+ {{ right_column }}
+ </div>
+ {% endautoescape %}
+{% endblock %}
--- /dev/null
+<ul>
+{% for page in objects %}
+ <li><a href="{{ page.get_absolute_url }}">{{ page.title }}</a></li>
+{% endfor %}
+</ul>
--- /dev/null
+# -*- coding: utf-8 -*-
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
+from django import template
+from infopages.models import InfoPage
+
+register = template.Library()
+
+
+@register.inclusion_tag('infopages/on_main.html')
+def infopages_on_main():
+ objects = InfoPage.objects.exclude(main_page=None)
+ return {"objects": objects}
--- /dev/null
+# -*- coding: utf-8 -*-
+# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+#
+from django.conf.urls.defaults import *
+
+
+urlpatterns = patterns('infopages.views',
+ url(r'^(?P<slug>[a-zA-Z0-9_-]+)/$', 'infopage', name='infopage'),
+)
+
# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
-from django.shortcuts import render_to_response
-from django.template import RequestContext
+from django.shortcuts import render_to_response, get_object_or_404
+from django.template import RequestContext, Template
-from catalogue.forms import SearchForm
from infopages.models import InfoPage
+
def infopage(request, slug):
- form = SearchForm()
- object = InfoPage.objects.get(slug=slug)
+ page = InfoPage.objects.get(slug=slug)
+
+ page = get_object_or_404(InfoPage, slug=slug)
+ rc = RequestContext(request)
+ left_column = Template(page.left_column).render(rc)
+ right_column = Template(page.right_column).render(rc)
- return render_to_response('info/base.html', locals(),
- context_instance=RequestContext(request))
\ No newline at end of file
+ return render_to_response('infopages/infopage.html', locals(),
+ context_instance=RequestContext(request))
-Subproject commit a3c860f00c7d12ae5852ddab056c98f52ee43072
+Subproject commit 05b19dad8ca44136e064abcc6beff5dac4489c60
# CSS and JavaScript file groups
COMPRESS_CSS = {
'all': {
- 'source_filenames': ('css/master.css', 'css/jquery.autocomplete.css', 'css/jquery.countdown.css', 'css/master.plain.css', 'css/sponsors.css', 'css/facelist_2-0.css',),
+ #'source_filenames': ('css/master.css', 'css/jquery.autocomplete.css', 'css/jquery.countdown.css', 'css/master.plain.css', 'css/sponsors.css', 'css/facelist_2-0.css',),
+ 'source_filenames': [
+ 'css/base.css',
+ 'css/header.css',
+ 'css/main_page.css',
+ 'css/book_box.css',
+ ],
'output_filename': 'css/all.min?.css',
},
'book': {
}
COMPRESS_JS = {
- 'jquery': {
- 'source_filenames': ('js/jquery.js',),
- 'output_filename': 'js/jquery.min.js',
- },
- 'all': {
- 'source_filenames': ('js/jquery.autocomplete.js', 'js/jquery.form.js',
- 'js/jquery.countdown.js', 'js/jquery.countdown-pl.js',
- 'js/jquery.countdown-de.js', 'js/jquery.countdown-uk.js',
- 'js/jquery.countdown-es.js', 'js/jquery.countdown-lt.js',
- 'js/jquery.countdown-ru.js', 'js/jquery.countdown-fr.js',
- 'js/jquery.cycle.min.js',
- 'js/jquery.jqmodal.js', 'js/jquery.labelify.js', 'js/catalogue.js',
- ),
- 'output_filename': 'js/all?.min.js',
- },
- 'book': {
- 'source_filenames': ('js/jquery.eventdelegation.js', 'js/jquery.scrollto.js', 'js/jquery.highlightfade.js', 'js/book.js',),
- 'output_filename': 'js/book?.min.js',
- },
- 'book_ie': {
- 'source_filenames': ('js/ierange-m2.js',),
- 'output_filename': 'js/book_ie?.min.js',
- }
+ #~ 'jquery': {
+ #~ #'source_filenames': ('js/jquery.js',),
+ #~ 'source_filenames': [],
+ #~ 'output_filename': 'js/jquery.min.js',
+ #~ },
+ #~ 'all': {
+ #~ 'source_filenames': ('js/jquery.autocomplete.js', 'js/jquery.form.js',
+ #~ 'js/jquery.countdown.js', 'js/jquery.countdown-pl.js',
+ #~ 'js/jquery.countdown-de.js', 'js/jquery.countdown-uk.js',
+ #~ 'js/jquery.countdown-es.js', 'js/jquery.countdown-lt.js',
+ #~ 'js/jquery.countdown-ru.js', 'js/jquery.countdown-fr.js',
+ #~ 'js/jquery.cycle.min.js',
+ #~ 'js/jquery.jqmodal.js', 'js/jquery.labelify.js', 'js/catalogue.js',
+ #~ ),
+ #~ 'source_filenames': [],
+ #~ 'output_filename': 'js/all?.min.js',
+ #~ },
+ #~ 'book': {
+ #~ 'source_filenames': ('js/jquery.eventdelegation.js', 'js/jquery.scrollto.js', 'js/jquery.highlightfade.js', 'js/book.js',),
+ #~ 'source_filenames': [],
+ #~ 'output_filename': 'js/book?.min.js',
+ #~ },
+ #~ 'book_ie': {
+ #~ 'source_filenames': ('js/ierange-m2.js',),
+ #~ 'source_filenames': [],
+ #~ 'output_filename': 'js/book_ie?.min.js',
+ #~ }
}
--- /dev/null
+html {
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ margin: 0;
+ background: #f7f7f7;
+ font-size: .9em;
+ line-height: 1.4em;
+}
+
+
+a {
+ color: #02adb7;
+ text-decoration: none;
+}
+
+h2 {
+ margin: 0;
+ font-size: 1em;
+ font-weight: normal;
+}
+
+
+.grid-line {
+ height: 2.6em;
+ padding-top: 1.4em;
+ padding-bottom: 0;
+}
+
+.mono, .mono-small {
+ font-family: "Lucida Sans Typewriter", courier;
+ font-size: .9em;
+}
+
+
+.clearboth {
+ clear: both;
+}
+
+#header-content, div#main-content, div#half-header-content {
+ width: 75em;
+ margin: auto;
+}
+
+
+
+
+#footer {
+ font-size: .75em;
+ color: #777;
+ border-top: 1px solid #ddd;
+ margin-top: 2.5em;
+}
--- /dev/null
+.book-mini-box {
+ display: inline-block;
+ margin: 0;
+ width: 12.5em;
+ vertical-align: top;
+}
+
+.book-mini-box a {
+ display: block;
+ color: black;
+ border: 1px solid #ddd;
+ height: 20em;
+ padding: .75em;
+ margin: .1em;
+ background: #fff;
+ -moz-box-shadow: 2px 2px 2px #ddd;
+ -webkit-box-shadow: 2px 2px 2px #ddd;
+ box-shadow: 2px 2px 2px #ddd;
+ overflow: hidden;
+}
+
+.book-mini-box img {
+ width: 10.8em;
+ height: 14.4em;
+ margin-bottom: .3em;
+}
+
+.book-mini-box .author {
+ color: #777;
+}
\ No newline at end of file
--- /dev/null
+/* Logo font */
+@font-face {
+ /* IE version */
+ font-family: WL-Logo;
+ src: url(/static/fonts/WL.eot);
+}
+@font-face {
+ font-family: WL-Logo;
+ src: url(/static/fonts/WL.ttf) format("truetype");
+}
+
+
+#header {
+ color: #969696;
+ background: #191919;
+}
+
+#half-header {
+ background: url('/static/img/bg-header.png');
+ background-position: center;
+ background-size: 100%;
+}
+
+#half-header-content {
+ background: #191919;
+}
+
+
+#user-info {
+ float: right;
+ margin: 0;
+}
+
+#logo {
+ position: absolute;
+ top: 4em;
+}
+
+#logo a {
+ font-family: WL-Logo;
+ font-size: 1.9em;
+ color:#f7f7f7;
+}
+
+#logo img {
+ max-width: 15em;
+}
+
+#tagline {
+ display: inline-block;
+ margin-left: 16em;
+}
+
+#search {
+ margin: 0;
+ background: #444;
+ margin-left: 16em;
+ width: 59em;
+}
+
+#search-field {
+ display: inline-block;
+ width: 50em;
+ padding-left: .5;
+ padding-right: .5;
+ padding: .1em .5em 0 .5em;
+}
+
+#search-field input {
+ height: 2.8em;
+ border: none;
+ width: 49.5em;
+ font-size: 1em;
+ padding-left: .5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ border-radius: .5em;
+ -webkit-box-shadow:0 0 .5em #444 inset;
+ -moz-box-shadow:0 0 .5em #444 inset;
+ box-shadow: 0 0 .5em #444 inset;
+}
+
+#search-button {
+ display: inline-block;
+ background: #02adb7;
+ padding: 0;
+ margin: 0;
+ width: 8em;
+}
+#search-button button {
+ font-size: 1em;
+ /* should match grid-line */
+ height: 4em;
+ border: none;
+ background: #02adb7;
+ color: white;
+ width: 100%;
+ padding: 0;
+}
+
+#search-button button span {
+ position:relative;
+ top: -.2em;
+}
+
+
+#nav-line {
+ background-color: #e2e2e2;
+ height: 3.95em;
+}
+
+ul#catalogue {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+ul#catalogue li {
+ background-color: #e2e2e2;
+ float: left;
+}
+ul#catalogue a {
+ display: block;
+ padding-left: 1.5em;
+ padding-right: 1.5em;
+ /* must match grid-line */
+ height: 2.7em;
+ padding-top: 1.3em;
+}
+
+
+
+#lang-button:after {
+ content: url(/static/img/lang-arrow.png);
+ padding-left: .5em;
+}
+#lang-menu {
+ position: relative;
+ float: right;
+ display: block;
+ padding-left: 1.5em;
+ padding-right: 1.5em;
+ /* must match grid-line */
+ height: 2.7em;
+ padding-top: 1.3em;
+ background: #f7f7f7;
+}
+
+#lang-menu-items button {
+ display: none;
+ background: #f7f7f7;
+ color: #444;
+ cursor: pointer;
+ width: 100%;
+ border: solid #ddd;
+ border-width: 0 0 1px 0;
+ padding: .5em 0;
+ margin: 0;
+}
+
+#lang-menu:hover button {
+ display: block;
+}
+
+#lang-menu:hover #lang-menu-items {
+ position: absolute;
+ width: 100%;
+ padding: 0;
+ left: 0;
+ /* must match grid-line height */
+ top: 3.9em;
+}
+
+#lang-menu .active {
+ font-weight: bold;
+}
--- /dev/null
+#big-cite {
+ background-color: white;
+ padding: 8em;
+ margin: 0;
+}
+
+#big-cite a {
+ color: black;
+ display: block;
+}
+
+#big-cite h2 {
+ margin: 0;
+}
+
+
+#big-cite-text {
+ margin: .5em 0;
+ font-size: 1.75em;
+ line-height: 1.3em;
+}
+
+
+#big-cite-source {
+ color: #02adb7;
+ margin: 0;
+}
+
+
+#promo-box {
+ float: right;
+ width: 24em;
+ /* should match grid-line */
+ margin-top: -4em;
+}
+#promo-box-header {
+ padding-left: 2em;
+ padding-right: 2em;
+ background: #191919;
+ color: white;
+}
+#promo-box-body {
+ border-bottom: 2px solid #efefef;
+ padding: 1.3em 2em;
+ height: 23em;
+ background: #efefef;
+}
+#promo-box-title {
+ color: #02ADB7;
+ height: 2.7em;
+ margin: 0;
+}
+#promo-box-body p {
+ margin-top: 0;
+}
+
+.infopages-box {
+ width: 16.75em;
+ display: inline-block;
+ margin: .5em 0 0 0;
+ padding: 0 1em;
+ vertical-align: top;
+}
+.infopages-box h2 {
+ color: #02ADB7;
+}
+.infopages-box a {
+ color: black;
+}
+
+.infopages-box ol, .infopages-box ul {
+ font-size: .8em;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.social-links {
+ margin-top: 1em;
+}
\ No newline at end of file
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
- {% load i18n chunks compressed catalogue_tags sponsor_tags %}
+ {% load i18n compressed catalogue_tags sponsor_tags %}
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="description"
content="{% block metadescription %}Darmowe opracowane, pełne teksty lektur, e-booki, audiobooki i pliki DAISY na wolnej licencji.{% endblock %}" />
- <title>{% block title %}WolneLektury.pl{% endblock %}</title>
+ <title>{% trans "Wolne Lektury internet library" %}
+ {% block titleextra %}{% endblock %}</title>
<link rel="icon" href="{{ STATIC_URL }}img/favicon.png" type="image/png" />
<link rel="search" type="application/opensearchdescription+xml" title="Wolne Lektury" href="{{ STATIC_URL }}opensearch.xml" />
{% compressed_css "all" %}
{% endblock %}
</head>
<body id="{% block bodyid %}base{% endblock %}">
- <!--[if lt IE 7]><link href={{ STATIC_URL }}infobar/infobar.css rel=stylesheet>
- <div id=infobar><a href=http://browsehappy.pl/infobar>
- {% trans "Internet Explorer cannot display this site properly. Click here to read more..." %}
- </a></div><div id=viewplot><script src={{ STATIC_URL }}infobar/infobar.js></script><![endif]-->
+
{% block bodycontent %}
- <div id="top-message">
- {% chunk "top-message" %}
- </div>
- <div id="header">
+
+ <div id="header" class="grid-line">
+
+ <div id="header-content">
<div id="logo">
- <a class="logo" href="/"><img src="{% block logo_url %}{{ STATIC_URL }}img/logo-bez.png{% endblock %}" alt="WolneLektury.pl" />
- <br/>szkolna biblioteka internetowa</a>
- {% block tagline %}{% endblock %}
+ <a class="logo" href="/">
+ Wolne Lektury</a>
</div>
- <div id="user-info" style="display:none">
+
+ <div id="tagline">
+ <a href=''>1666</a> darmowych lektur do których masz <a href=''>prawo</a>
+ </div>
+
+ <p id="user-info" class="mono">
{% if user.is_authenticated %}
- <p>
- {% trans "Welcome" %}, <strong>{{ user.username }}</strong>
- | <a href="{% url user_shelves %}" id="user-shelves-link">{% trans "Your shelves" %}</a>
- {% if user.is_staff %}
- | <a href="/admin/">{% trans "Administration" %}</a>
- {% endif %}
- | <a href="{% url suggest %}" id="suggest-link">{% trans "Report a bug" %}</a>
- | <a href="{% url logout %}?next={{ request.get_full_path }}">{% trans "Logout" %}</a>
- </p>
+ {% trans "Welcome" %}, <strong>{{ user.username }}</strong>
+ | <a href="{% url user_shelves %}" id="user-shelves-link">{% trans "Your shelves" %}</a>
+ {% if user.is_staff %}
+ | <a href="/admin/">{% trans "Administration" %}</a>
+ {% endif %}
+ | <a href="{% url logout %}?next={{ request.get_full_path }}">{% trans "Logout" %}</a>
{% else %}
- <p><a href="{% url suggest %}" id="suggest-link">{% trans "Report a bug" %}</a>
- | <a href="{% url login %}" class="login-register-link">{% trans "Sign in" %} / {% trans "Register" %}</a></p>
+ <a href="{% url login %}" class="login-register-link">{% trans "Sign in" %} / {% trans "Register" %}</a>
{% endif %}
+ </p>
+
+
+ <div class="clearboth"></div>
+
+ </div>
+ </div>
+
+ <div id="half-header">
+ <div id="half-header-content">
+
+
+
+ <form id="search">
+
+ <span id="search-field" class="grid-line">
+ <input title="np. Leśmian" name="q" autocomplete="off">
+ </span><span id="search-button">
+ <button type='submit'><span class="mono">{% trans "Search" %}</span></button>
+ </span>
+
+ </form>
+
+
+
+ <div class="clearboth"></div>
+ </div>
+ </div>
+
+
+
+ <div id="main-content">
+
+ <div id="nav-line">
+ <ul id="catalogue">
+ <li><a href="{% url book_list %}"><span class='mono'>{% trans "All books" %}</span></a></li>
+ <li><a href="{% url audiobook_list %}"><span class='mono'>{% trans "Audiobooks" %}</span></a></li>
+ <li><a href="{% url daisy_list %}"><span class='mono'>{% trans "DAISY" %}</span></a></li>
+ <li><a href="{% url catalogue %}#autorzy"><span class='mono'>{% trans "Authors" %}</span></a></li>
+ <li><a href="{% url catalogue %}#epoki"><span class='mono'>{% trans "Epochs" %}</span></a></li>
+ <li><a href="{% url catalogue %}#rodzaje"><span class='mono'>{% trans "Kinds" %}</span></a></li>
+ <li><a href="{% url catalogue %}#gatunki"><span class='mono'>{% trans "Genres" %}</span></a></li>
+ <li><a href="{% url catalogue %}#motywy"><span class='mono'>{% trans "Themes" %}</span></a></li>
+ </ul>
+
+ <form action="{% url django.views.i18n.set_language %}" method="post">
+ <div id="lang-menu">
+ <span id='lang-button' class='mono-small'>
+ {% trans "Language versions" %}</span>
+ <div id="lang-menu-items">
+ {% for lang in LANGUAGES %}
+ <button type="submit" name="language"
+ class="{% ifequal lang.0 LANGUAGE_CODE %}active{% endifequal %} {% if forloop.last %}last{% endif %}"
+ value="{{ lang.0 }}">{{ lang.1 }}</button>
+ {% endfor %}
+ </div>
</div>
- <div class="social-links" style="float:right">
- <a href="http://pl-pl.facebook.com/pages/Wolne-Lektury/203084073268"><img src="{{ STATIC_URL }}img/social/facebook.png" alt="WolneLektury @ Facebook" /></a>
- <a href="http://nk.pl/profile/30441509"><img src="{{ STATIC_URL }}img/social/naszaklasa.png" alt="WolneLektury @ NK" /></a>
- </div>
- <form action="{% url django.views.i18n.set_language %}" method="post">
- <div class="lang-menu" style="float:right;">
- {% spaceless %}
- {% for lang in LANGUAGES %}
- <button type="submit" name="language" title="{{ lang.1 }}"
- class="{% ifequal lang.0 LANGUAGE_CODE %}active{% endifequal %} {% if forloop.last %}last{% endif %}"
- value="{{ lang.0 }}">{{ lang.0|upper }}</button>
- {% endfor %}
- {% endspaceless %}
- </div>
- </form>
- {# publication plan consultations - form link #}
- <div style="clear:right;float:right" class="big-top-link">
- <a href="{% url suggest_publishing %}" data-ajax="{% url suggest_publishing %}?ajax=1" id="suggest-publishing-link">
- {% trans "Didn't find a book? Make a suggestion." %}
- </a>
+ </form>
</div>
+
<div class="clearboth"></div>
- </div>
- <div id="maincontent">
+
+
+
{% block body %}
{% endblock %}
- </div>
+
+
+
+
<div class="clearboth"></div>
+
+
+
<div id="footer">
<p>
{% blocktrans %}
{% sponsor_page "footer" %}
</div>
- <div id="login-register-window">
+
+ </div>{# end main-content #}
+
+
+ <!--div id="login-register-window">
<div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
<div class="target">
<form method="post" action="{% url login %}" id="login-form" class="cuteform">
</ol>
</form>
</div>
- </div>
- <div id="user-shelves-window">
- <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
- <div class="target">
- <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
- </div>
- </div>
- <div id="suggest-window">
- <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
- <div class="target">
- <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
- </div>
- </div>
- <div id="suggest-publishing-window">
- <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
- <div class="target">
- <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
- </div>
- </div>
+ </div-->
+
+
{% endblock bodycontent %}
- {{ piwik_tag|safe }}
+
+ <!--{{ piwik_tag|safe }}
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2576694-1");
pageTracker._trackPageview();
- </script>
+ </script>-->
</body>
</html>
{% if book.pdf_file %}
<a href="{{ book.pdf_file.url }}"><img src="{{ STATIC_URL }}img/pdf.png" title="{% trans "Download PDF" %} – {% trans "for reading" %} {% trans "and printing using" %} Adobe Reader" %}" alt="{% trans "Download PDF" %}" /></a>
{% endif %}
- {% if book.root_ancestor.epub_file %}
- <a href="{{ book.root_ancestor.epub_file.url }}"><img src="{{ STATIC_URL }}img/epub.png" title="{% trans "Download EPUB" %} – {% trans "for reading" %} {% trans "on mobile devices" %}" alt="{% trans "Download EPUB" %}" /></a>
+ {% if book.epub_file %}
+ <a href="{{ book.epub_file.url }}"><img src="{{ STATIC_URL }}img/epub.png" title="{% trans "Download EPUB" %} – {% trans "for reading" %} {% trans "on mobile devices" %}" alt="{% trans "Download EPUB" %}" /></a>
{% endif %}
{% if book.mobi_file %}
<a href="{{ book.mobi_file.url }}"><img src="{{ STATIC_URL }}img/mobi.png" title="{% trans "Download MOBI" %} – {% trans "for reading" %} {% trans "on mobile devices" %}" alt="{% trans "Download MOBI" %}" /></a>
{% if book.txt_file %}
<a href="{{ book.txt_file.url }}"><img src="{{ STATIC_URL }}img/txt.png" title="{% trans "Download TXT" %} – {% trans "for reading" %} {% trans "on small displays, for example mobile phones" %}" alt="{% trans "Download TXT" %}" /></a>
{% endif %}
- {% for media in book.get_odt %}
- <a href="{{ media.file.url }}"><img src="{{ STATIC_URL }}img/odt.png" title="{% trans "Download ODT" %} – {% trans "for reading" %} {% trans "and editing using" %} OpenOffice.org: {{ media.name }}" alt="{% trans "Download ODT" %}" /></a>
- {% endfor %}
{% if book.pdf_file %}
<br/><a href="#" id="custom-pdf-link">{% trans "Dowload customized PDF" %}</a>.
--- /dev/null
+{% load i18n %}
+<div class="book-mini-box">
+ <a href="{{ book.get_absolute_url }}">
+ <img src="{{ STATIC_URL }}img/cover.png"
+ alt="{% trans "Book cover" %}" />
+ {% for author in authors %}
+ <div class="mono author">{{ author }}</div>
+ {{ book.title }}
+ {% endfor %}
+ </a>
+</div>
+
+
--- /dev/null
+{% extends "base.html" %}
+{% load i18n %}
+{% load catalogue_tags %}
+
+
+{% block bodyid %}catalogue-catalogue{% endblock %}
+
+{% block body %}
+ <h2></a>{% trans "Authors" %}<a name="autorzy"></a></h2>
+ {% tag_list categories.author %}
+
+ <h2>{% trans "Kinds" %}<a name="rodzaje"></a></h2>
+ {% tag_list categories.kind %}
+
+ <h2>{% trans "Genres" %}<a name="gatunki"></a></h2>
+ {% tag_list categories.genre %}
+
+ <h2>{% trans "Epochs" %}<a name="epoki"></a></h2>
+ {% tag_list categories.epoch %}
+
+ <h2>{% trans "Themes and topics" %}<a name="motywy"></a></h2>
+ {% tag_list fragment_tags %}
+{% endblock %}
+++ /dev/null
-{% extends "base.html" %}
-{% load i18n %}
-{% load catalogue_tags chunks cache reporting_stats %}
-
-
-{% block tagline %}
-<div id='tagline'>
-
-{% count_books_nonempty count_books %}
-{% blocktrans count count_books as c %}
-{{c}} book from <a href='http://domenapubliczna.org'>public domain</a> or under
-a <a href='http://creativecommons.org/licenses/by-sa/3.0/deed.pl'>free license</a>.
-{% plural %}
-{{c}} books from <a href='http://domenapubliczna.org'>public domain</a> or under
-a <a href='http://creativecommons.org/licenses/by-sa/3.0/deed.pl'>free license</a>.
-{% endblocktrans %}
-
-</div>
-{% endblock %}
-
-
-{% block bodyid %}main-page{% endblock %}
-
-{% block body %}
- <div id="site-description">
- {% chunk "site-description" %}
- </div>
- <div class="clearboth"></div>
- <form action="{% url search %}" method="get" accept-charset="utf-8" id="search-form">
- <p>{{ form.q }} {{ form.tags }} <input type="submit" value="{% trans "Search" %}" />
- <strong>{% trans "or" %}</strong> {% trans "see" %}:
- <span class='collections'>
- <a href="{% url catalogue.views.book_list %}">{% trans "all books" %}</a>
- <a href="{% url catalogue.views.audiobook_list %}">{% trans "audiobooks" %}</a>
- <a href="{% url catalogue.views.daisy_list %}">{% trans "DAISY" %}</a>
- </span></p>
- </form>
-
- <div id="intro">
- <p id="tags-description">↓ {% trans "Browse books by categories" %} ↓</p>
- <div id="propaganda">
-
- <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>
-
-
- {% comment %} <h2>{% trans "Books for every school level" %}</h2>
- <ul>
- <li><a href="">{% trans "primary school" %}</a></li>
- <li><a href="">{% trans "gymnasium" %}</a></li>
- <li><a href="">{% trans "high school" %}</a></li>
- </ul> {% endcomment %}
-
- <br/>
- <h2>{% trans "Your shelves with books" %}</h2>
- {% if user.is_authenticated %}
- {% if shelves %}
- <ul class="shelf-list">
- {% for shelf in shelves %}
- <li><a href="{% url delete_shelf shelf.slug %}" class="delete-shelf">{% trans "delete" %}</a> <a href="{{ shelf.get_absolute_url }}" class="visit-shelf">{{ shelf.name }} ({{ shelf.get_count }})</a></li>
- {% endfor %}
- </ul>
- {% else %}
- <p>{% trans "You do not own any shelves. You can create one below, if you want to." %}</p>
- {% endif %}
- <hr />
- <form action="{% url catalogue.views.new_set %}" method="post" accept-charset="utf-8" class="cuteform">
- <ol>
- <li>{{ new_set_form.name }} <input type="submit" value="{% trans "Create shelf" %}"/></li>
- </ol>
- </form>
- <br/>
- {% else %}
- <p>{% trans "Create your own book set. You can share it with friends by sending them link to your shelf." %}</p>
- <p>{% trans "You need to " %} <a class="login-register-link" href="#">{% trans "sign in" %}</a> {% trans "to manage your shelves." %}</p>
- {% endif %}
-
- <h2>Leśmianator</h2>
- <p>Wybierz, co wpadnie do miksera, i pokaż efekt znajomym!
- </p>
- <p class="see-more" style="clear:both"><a href="{% url lesmianator %}">{% trans "Twórzże się!" %} ⇒</a></p>
-
- <h2>{% trans "Wolne Lektury Widget" %}</h2>
- <p>{% trans "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:" %}</p>
- <textarea rows="1" cols="35" class='widget-code' title='widget'><!-- START {% trans "Insert this element in place where you want display the widget" %} -->
-<div id="wl" />
-<!-- END -->
-<!-- START {% trans "Place this element just before closing body tag: </body>" %} -->
-<script type="text/javascript" src="http://www.wolnelektury.pl/static/js/widget.js"></script>
-<!-- END --></textarea>
- <p class="see-more"><a href="{% url widget %}" title="{% trans "Wolne Lektury Widget" %}">{% trans "See more" %} ⇒</a></p>
-
- <div id="lessons">
- <h2><a href="{% url lessons_document_list %}">{% trans "Hand-outs for teachers" %}</a></h2>
- <p>{% trans "Lessons' prospects and other ideas for using Wolnelektury.pl for teaching." %}</p>
- <p class="see-more"><a href="{% url lessons_document_list %}" title="{% trans "Hand-outs for teachers" %}">{% trans "See more" %} ⇒</a></p>
- </div>
- </div>
- <div id="tags-list">
- <div id="categories-list">
- {% if categories.author %}
- <h2>{% trans "Authors" %}</h2>
- {% folded_tag_list categories.author 'Authors' %}
- {% endif %}
- {% if categories.kind %}
- <h2>{% trans "Kinds" %}</h2>
- {% folded_tag_list categories.kind 'Kinds' %}
- {% endif %}
- {% if categories.genre %}
- <h2>{% trans "Genres" %}</h2>
- {% folded_tag_list categories.genre 'Genres' %}
- {% endif %}
- {% if categories.epoch %}
- <h2>{% trans "Epochs" %}</h2>
- {% folded_tag_list categories.epoch 'Epochs' %}
- {% endif %}
- </div>
- <div id="themes-list">
- {% if fragment_tags %}
- <h2>{% trans "Themes and topics" %}</h2>
- {% folded_tag_list fragment_tags 'Themes' %}
- {% endif %}
- <h2>{% trans "Themes groups" %}</h2>
- <div class="shown-tags">
- <ol>
- <li>środowisko miejskie i wiejskie
- <span class="subcategories"><a href="/katalog/motyw/miasto/">Miasto</a>, <a href="/katalog/motyw/warszawa/">Warszawa</a>, <a href="/katalog/motyw/mieszczanin/">Mieszczanin</a>, <a href="/katalog/motyw/handel/">Handel</a>, <a href="/katalog/motyw/robotnik/">Robotnik</a>, <a href="/katalog/motyw/zyd/">Żyd</a>, <a href="/katalog/motyw/wies/">Wieś</a>, <a href="/katalog/motyw/sielanka/">Sielanka</a>, <a href="/katalog/motyw/chlop/">Chłop</a>, <a href="/katalog/motyw/ogrod/">Ogród</a>, <a href="/katalog/motyw/natura/">Natura</a>, <a href="/katalog/motyw/przestrzen/">Przestrzeń</a></span></li>
-
- <li>polityczny obraz świata
- <span class="subcategories"><a href="/katalog/motyw/panstwo/">Państwo</a>, <a href="/katalog/motyw/obowiazek/">Obowiązek</a>, <a href="/katalog/motyw/cnota/">Cnota</a>, <a href="/katalog/motyw/obywatel/">Obywatel</a>, <a href="/katalog/motyw/patriota/">Patriota</a>, <a href="/katalog/motyw/ojczyzna/">Ojczyzna</a>, <a href="/katalog/motyw/narod/">Naród</a>, <a href="/katalog/motyw/przywodca/">Przywódca</a>, <a href="/katalog/motyw/wladza/">Władza</a>, <a href="/katalog/motyw/urzednik/">Urzędnik</a>, <a href="/katalog/motyw/krol/">Król</a>, <a href="/katalog/motyw/rycerz/">Rycerz</a>, <a href="/katalog/motyw/zolnierz/">Żołnierz</a>, <a href="/katalog/motyw/wojna/">Wojna</a>, <a href="/katalog/motyw/wrog/">Wróg</a>, <a href="/katalog/motyw/zwyciestwo/">Zwycięstwo</a>, <a href="/katalog/motyw/walka/">Walka</a>, <a href="/katalog/motyw/sila/">Siła</a>, <a href="/katalog/motyw/historia/">Historia</a>, <a href="/katalog/motyw/powstanie/">Powstanie</a>, <a href="/katalog/motyw/smierc-bohaterska/">Śmierć bohaterska</a>, <a href="/katalog/motyw/slawa/">Sława</a>, <a href="/katalog/motyw/rewolucja/">Rewolucja</a>, <a href="/katalog/motyw/sad/">Sąd</a>, <a href="/katalog/motyw/zdrada/">Zdrada</a></span></li>
-
- <li>przyroda
- <span class="subcategories"><a href="/katalog/motyw/natura/">Natura</a>, <a href="/katalog/motyw/zywioly/">Żywioły</a>, <a href="/katalog/motyw/ogien/">Ogień</a>, <a href="/katalog/motyw/ziemia/">Ziemia</a>, <a href="/katalog/motyw/wiatr/">Wiatr</a>, <a href="/katalog/motyw/woda/">Woda</a>, <a href="/katalog/motyw/wiosna/">Wiosna</a>, <a href="/katalog/motyw/lato/">Lato</a>, <a href="/katalog/motyw/jesien/">Jesień</a>, <a href="/katalog/motyw/zima/">Zima</a>, <a href="/katalog/motyw/przemijanie/">Przemijanie</a>, <a href="/katalog/motyw/slonce/">Słońce</a>, <a href="/katalog/motyw/ksiezyc/">Księżyc</a>, <a href="/katalog/motyw/gwiazda/">Gwiazda</a>, <a href="/katalog/motyw/oblok/">Obłok</a>, <a href="/katalog/motyw/noc/">Noc</a>, <a href="/katalog/motyw/swiatlo/">Światło</a>, <a href="/katalog/motyw/gora/">Góra</a>, <a href="/katalog/motyw/rzeka/">Rzeka</a>, <a href="/katalog/motyw/morze/">Morze</a>, <a href="/katalog/motyw/burza/">Burza</a>, <a href="/katalog/motyw/deszcz/">Deszcz</a>, <a href="/katalog/motyw/bloto/">Błoto</a>, <a href="/katalog/motyw/przyroda-nieozywiona/">Przyroda nieożywiona</a>, <a href="/katalog/motyw/rosliny/">Rośliny</a>, <a href="/katalog/motyw/kwiaty/">Kwiaty</a>, <a href="/katalog/motyw/ogrod/">Ogród</a>, <a href="/katalog/motyw/sielanka/">Sielanka</a>, <a href="/katalog/motyw/raj/">Raj</a>, <a href="/katalog/motyw/jablko/">Jabłko</a>, <a href="/katalog/motyw/drzewo/">Drzewo</a>, <a href="/katalog/motyw/zwierzeta/">Zwierzęta</a>, <a href="/katalog/motyw/ptak/">Ptak</a>, <a href="/katalog/motyw/motyl/">Motyl</a>, <a href="/katalog/motyw/kot/">Kot</a>, <a href="/katalog/motyw/kon/">Koń</a>, <a href="/katalog/motyw/pies/">Pies</a>, <a href="/katalog/motyw/waz/">Wąż</a>, <a href="/katalog/motyw/potwor/">Potwór</a></span></li>
- </ol>
- <p><a href="#" class="show-all-tags" title="{% trans "Themes and topics" %}">{% trans "See more" %}</a></p>
- </div>
- <div class="all-tags">
- <ol>
- <li>cielesność
- <span class="subcategories"><a href="/katalog/motyw/cialo/">Ciało</a>, <a href="/katalog/motyw/krew/">Krew</a>, <a href="/katalog/motyw/zdrowie/">Zdrowie</a>, <a href="/katalog/motyw/choroba/">Choroba</a>, <a href="/katalog/motyw/kaleka/">Kaleka</a></span></li>
-
- <li>dom
- <span class="subcategories"><a href="/katalog/motyw/dom/">Dom</a>, <a href="/katalog/motyw/ogrod/">Ogród</a>, <a href="/katalog/motyw/przestrzen/">Przestrzeń</a>, <a href="/katalog/motyw/gospodarz/">Gospodarz</a>, <a href="/katalog/motyw/gospodyni/">Gospodyni</a>, <a href="/katalog/motyw/sasiad/">Sąsiad</a>, <a href="/katalog/motyw/gosc/">Gość</a>, <a href="/katalog/motyw/bezdomnosc/">Bezdomność</a>, <a href="/katalog/motyw/bezpieczenstwo/">Bezpieczeństwo</a>, <a href="/katalog/motyw/niebezpieczenstwo/">Niebezpieczeństwo</a></span></li>
-
- <li>działania nieczyste
- <span class="subcategories"><a href="/katalog/motyw/szantaz/">Szantaż</a>, <a href="/katalog/motyw/zazdrosc/">Zazdrość</a>, <a href="/katalog/motyw/zdrada/">Zdrada</a>, <a href="/katalog/motyw/zemsta/">Zemsta</a>, <a href="/katalog/motyw/klamstwo/">Kłamstwo</a>, <a href="/katalog/motyw/falsz/">Fałsz</a>, <a href="/katalog/motyw/pozory/">Pozory</a>, <a href="/katalog/motyw/tajemnica/">Tajemnica</a></span></li>
-
- <li>dziedzictwo
- <span class="subcategories"><a href="/katalog/motyw/dziedzictwo/">Dziedzictwo</a>, <a href="/katalog/motyw/obyczaje/">Obyczaje</a>, <a href="/katalog/motyw/pamiec/">Pamięć</a>, <a href="/katalog/motyw/historia/">Historia</a>, <a href="/katalog/motyw/narod/">Naród</a>, <a href="/katalog/motyw/krew/">Krew</a>, <a href="/katalog/motyw/panstwo/">Państwo</a>, <a href="/katalog/motyw/obowiazek/">Obowiązek</a>, <a href="/katalog/motyw/patriota/">Patriota</a>, <a href="/katalog/motyw/ruiny/">Ruiny</a>, <a href="/katalog/motyw/dom/">Dom</a>, <a href="/katalog/motyw/przywodca/">Przywódca</a></span></li>
-
- <li>dźwięk
- <span class="subcategories"><a href="/katalog/motyw/cisza/">Cisza</a>, <a href="/katalog/motyw/muzyka/">Muzyka</a>, <a href="/katalog/motyw/spiew/">Śpiew</a>, <a href="/katalog/motyw/poezja/">Poezja</a></span></li>
-
- <li>edukacja
- <span class="subcategories"><a href="/katalog/motyw/uczen/">Uczeń</a>, <a href="/katalog/motyw/szkola/">Szkoła</a>, <a href="/katalog/motyw/nauczyciel/">Nauczyciel</a>, <a href="/katalog/motyw/nauczycielka/">Nauczycielka</a>, <a href="/katalog/motyw/nauka/">Nauka</a>, <a href="/katalog/motyw/wiedza/">Wiedza</a>, <a href="/katalog/motyw/dziecinstwo/">Dzieciństwo</a>, <a href="/katalog/motyw/mlodosc/">Młodość</a>, <a href="/katalog/motyw/doroslosc/">Dorosłość</a></span></li>
-
- <li>egzystencja ludzka
- <span class="subcategories"><a href="/katalog/motyw/kondycja-ludzka/">Kondycja ludzka</a>, <a href="/katalog/motyw/los/">Los</a>, <a href="/katalog/motyw/bladzenie/">Błądzenie</a>, <a href="/katalog/motyw/bunt/">Bunt</a>, <a href="/katalog/motyw/buntownik/">Buntownik</a>, <a href="/katalog/motyw/pielgrzym/">Pielgrzym</a>, <a href="/katalog/motyw/theatrum-mundi/">Theatrum mundi</a>, <a href="/katalog/motyw/zycie-jako-wedrowka/">Życie jako wędrówka</a>, <a href="/katalog/motyw/zycie-snem/">Życie snem</a></span></li>
-
- <li>etapy życia
- <span class="subcategories"><a href="/katalog/motyw/dziecinstwo/">Dzieciństwo</a>, <a href="/katalog/motyw/mlodosc/">Młodość</a>, <a href="/katalog/motyw/doroslosc/">Dorosłość</a>, <a href="/katalog/motyw/panna-mloda/">Panna młoda</a>, <a href="/katalog/motyw/zona/">Żona</a>, <a href="/katalog/motyw/maz/">Mąż</a>, <a href="/katalog/motyw/wdowa/">Wdowa</a>, <a href="/katalog/motyw/wdowiec/">Wdowiec</a>, <a href="/katalog/motyw/starosc/">Starość</a>, <a href="/katalog/motyw/czas/">Czas</a>, <a href="/katalog/motyw/przemijanie/">Przemijanie</a>, <a href="/katalog/motyw/przemiana/">Przemiana</a>, <a href="/katalog/motyw/kondycja-ludzka/">Kondycja ludzka</a></span></li>
-
- <li>fauna
- <span class="subcategories"><a href="/katalog/motyw/zwierzeta/">Zwierzęta</a>, <a href="/katalog/motyw/kot/">Kot</a>, <a href="/katalog/motyw/kon/">Koń</a>, <a href="/katalog/motyw/motyl/">Motyl</a>, <a href="/katalog/motyw/pies/">Pies</a>, <a href="/katalog/motyw/ptak/">Ptak</a>, <a href="/katalog/motyw/waz/">Wąż</a></span></li>
-
- <li>flora
- <span class="subcategories"><a href="/katalog/motyw/rosliny/">Rośliny</a>, <a href="/katalog/motyw/kwiaty/">Kwiaty</a>, <a href="/katalog/motyw/ogrod/">Ogród</a>, <a href="/katalog/motyw/drzewo/">Drzewo</a></span></li>
-
- <li>historie miłosne
- <span class="subcategories"><a href="/katalog/motyw/milosc/">Miłość</a>, <a href="/katalog/motyw/milosc-platoniczna/">Miłość platoniczna</a>, <a href="/katalog/motyw/milosc-romantyczna/">Miłość romantyczna</a>, <a href="/katalog/motyw/milosc-silniejsza-niz-smierc/">Miłość silniejsza niż śmierć</a>, <a href="/katalog/motyw/milosc-spelniona/">Miłość spełniona</a>, <a href="/katalog/motyw/milosc-tragiczna/">Miłość tragiczna</a>, <a href="/katalog/motyw/kochanek/">Kochanek</a>, <a href="/katalog/motyw/kochanek-romantyczny/">Kochanek romantyczny</a>, <a href="/katalog/motyw/flirt/">Flirt</a>, <a href="/katalog/motyw/pocalunek/">Pocałunek</a>, <a href="/katalog/motyw/pozadanie/">Pożądanie</a>, <a href="/katalog/motyw/list/">List</a>, <a href="/katalog/motyw/serce/">Serce</a>, <a href="/katalog/motyw/lzy/">Łzy</a>, <a href="/katalog/motyw/przysiega/">Przysięga</a>, <a href="/katalog/motyw/tesknota/">Tęsknota</a>, <a href="/katalog/motyw/wspomnienia/">Wspomnienia</a>, <a href="/katalog/motyw/zdrada/">Zdrada</a>, <a href="/katalog/motyw/rozczarowanie/">Rozczarowanie</a>, <a href="/katalog/motyw/rozpacz/">Rozpacz</a>, <a href="/katalog/motyw/malzenstwo/">Małżeństwo</a>, <a href="/katalog/motyw/slub/">Ślub</a>, <a href="/katalog/motyw/panna-mloda/">Panna młoda</a>, <a href="/katalog/motyw/przyjazn/">Przyjaźń</a></span></li>
-
- <li>jedzenie i picie
- <span class="subcategories"><a href="/katalog/motyw/glod/">Głód</a>, <a href="/katalog/motyw/bieda/">Bieda</a>, <a href="/katalog/motyw/chleb/">Chleb</a>, <a href="/katalog/motyw/jedzenie/">Jedzenie</a>, <a href="/katalog/motyw/uczta/">Uczta</a>, <a href="/katalog/motyw/wino/">Wino</a>, <a href="/katalog/motyw/alkohol/">Alkohol</a>, <a href="/katalog/motyw/pijanstwo/">Pijaństwo</a></span></li>
-
- <li>konflikty
- <span class="subcategories"><a href="/katalog/motyw/klotnia/">Kłótnia</a>, <a href="/katalog/motyw/bijatyka/">Bijatyka</a>, <a href="/katalog/motyw/sila/">Siła</a>, <a href="/katalog/motyw/przemoc/">Przemoc</a>, <a href="/katalog/motyw/krew/">Krew</a>, <a href="/katalog/motyw/konflikt/">Konflikt</a>, <a href="/katalog/motyw/walka/">Walka</a>, <a href="/katalog/motyw/wojna/">Wojna</a>, <a href="/katalog/motyw/powstanie/">Powstanie</a>, <a href="/katalog/motyw/bunt/">Bunt</a>, <a href="/katalog/motyw/rewolucja/">Rewolucja</a></span></li>
-
- <li>momenty graniczne
- <span class="subcategories"><a href="/katalog/motyw/narodziny/">Narodziny</a>, <a href="/katalog/motyw/smierc/">Śmierć</a>, <a href="/katalog/motyw/przemiana/">Przemiana</a>, <a href="/katalog/motyw/zmartwychwstanie/">Zmartwychwstanie</a></span></li>
-
- <li>nadużycie władzy
- <span class="subcategories"><a href="/katalog/motyw/wladza/">Władza</a>, <a href="/katalog/motyw/przemoc/">Przemoc</a>, <a href="/katalog/motyw/strach/">Strach</a>, <a href="/katalog/motyw/kara/">Kara</a></span></li>
-
- <li>nacjonalizm
- <span class="subcategories"><a href="/katalog/motyw/polak/">Polak</a>, <a href="/katalog/motyw/niemiec/">Niemiec</a>, <a href="/katalog/motyw/rosjanin/">Rosjanin</a>, <a href="/katalog/motyw/car/">Car</a>, <a href="/katalog/motyw/zyd/">Żyd</a>, <a href="/katalog/motyw/narod/">Naród</a>, <a href="/katalog/motyw/obcy/">Obcy</a>, <a href="/katalog/motyw/wrog/">Wróg</a>, <a href="/katalog/motyw/niebezpieczenstwo/">Niebezpieczeństwo</a></span></li>
-
- <li>nastroje melancholijne
- <span class="subcategories"><a href="/katalog/motyw/nuda/">Nuda</a>, <a href="/katalog/motyw/melancholia/">Melancholia</a>, <a href="/katalog/motyw/ruiny/">Ruiny</a>, <a href="/katalog/motyw/wspomnienia/">Wspomnienia</a>, <a href="/katalog/motyw/marzenie/">Marzenie</a>, <a href="/katalog/motyw/przemijanie/">Przemijanie</a>, <a href="/katalog/motyw/tesknota/">Tęsknota</a>, <a href="/katalog/motyw/rozpacz/">Rozpacz</a>, <a href="/katalog/motyw/smierc/">Śmierć</a>, <a href="/katalog/motyw/los/">Los</a>, <a href="/katalog/motyw/kondycja-ludzka/">Kondycja ludzka</a></span></li>
-
- <li>nastroje rewolucyjne
- <span class="subcategories"><a href="/katalog/motyw/rewolucja/">Rewolucja</a>, <a href="/katalog/motyw/walka-klas/">Walka klas</a>, <a href="/katalog/motyw/robotnik/">Robotnik</a>, <a href="/katalog/motyw/chlop/">Chłop</a>, <a href="/katalog/motyw/pozycja-spoleczna/">Pozycja społeczna</a>, <a href="/katalog/motyw/wladza/">Władza</a>, <a href="/katalog/motyw/przemoc/">Przemoc</a>, <a href="/katalog/motyw/sprawiedliwosc/">Sprawiedliwość</a></span></li>
-
- <li>podporządkowanie
- <span class="subcategories"><a href="/katalog/motyw/sluga/">Sługa</a>, <a href="/katalog/motyw/pan/">Pan</a>, <a href="/katalog/motyw/praca/">Praca</a>, <a href="/katalog/motyw/wladza/">Władza</a>, <a href="/katalog/motyw/obyczaje/">Obyczaje</a></span></li>
-
- <li>pokrewieństwo
- <span class="subcategories"><a href="/katalog/motyw/rodzina/">Rodzina</a>, <a href="/katalog/motyw/ojciec/">Ojciec</a>, <a href="/katalog/motyw/matka/">Matka</a>, <a href="/katalog/motyw/dziecko/">Dziecko</a>, <a href="/katalog/motyw/syn/">Syn</a>, <a href="/katalog/motyw/corka/">Córka</a>, <a href="/katalog/motyw/brat/">Brat</a>, <a href="/katalog/motyw/siostra/">Siostra</a>, <a href="/katalog/motyw/sierota/">Sierota</a>, <a href="/katalog/motyw/dziedzictwo/">Dziedzictwo</a>, <a href="/katalog/motyw/obowiazek/">Obowiązek</a>, <a href="/katalog/motyw/zdrada/">Zdrada</a></span></li>
-
- <li>polityczny obraz świata
- <span class="subcategories"><a href="/katalog/motyw/panstwo/">Państwo</a>, <a href="/katalog/motyw/obowiazek/">Obowiązek</a>, <a href="/katalog/motyw/cnota/">Cnota</a>, <a href="/katalog/motyw/obywatel/">Obywatel</a>, <a href="/katalog/motyw/patriota/">Patriota</a>, <a href="/katalog/motyw/ojczyzna/">Ojczyzna</a>, <a href="/katalog/motyw/narod/">Naród</a>, <a href="/katalog/motyw/przywodca/">Przywódca</a>, <a href="/katalog/motyw/wladza/">Władza</a>, <a href="/katalog/motyw/urzednik/">Urzędnik</a>, <a href="/katalog/motyw/krol/">Król</a>, <a href="/katalog/motyw/rycerz/">Rycerz</a>, <a href="/katalog/motyw/zolnierz/">Żołnierz</a>, <a href="/katalog/motyw/wojna/">Wojna</a>, <a href="/katalog/motyw/wrog/">Wróg</a>, <a href="/katalog/motyw/zwyciestwo/">Zwycięstwo</a>, <a href="/katalog/motyw/walka/">Walka</a>, <a href="/katalog/motyw/sila/">Siła</a>, <a href="/katalog/motyw/historia/">Historia</a>, <a href="/katalog/motyw/powstanie/">Powstanie</a>, <a href="/katalog/motyw/smierc-bohaterska/">Śmierć bohaterska</a>, <a href="/katalog/motyw/slawa/">Sława</a>, <a href="/katalog/motyw/rewolucja/">Rewolucja</a>, <a href="/katalog/motyw/sad/">Sąd</a>, <a href="/katalog/motyw/zdrada/">Zdrada</a></span></li>
-
- <li>pory roku
- <span class="subcategories"><a href="/katalog/motyw/wiosna/">Wiosna</a>, <a href="/katalog/motyw/lato/">Lato</a>, <a href="/katalog/motyw/jesien/">Jesień</a>, <a href="/katalog/motyw/zima/">Zima</a>, <a href="/katalog/motyw/czas/">Czas</a>, <a href="/katalog/motyw/przemijanie/">Przemijanie</a></span></li>
-
- <li>posiadanie
- <span class="subcategories"><a href="/katalog/motyw/pieniadz/">Pieniądz</a>, <a href="/katalog/motyw/handel/">Handel</a>, <a href="/katalog/motyw/korzysc/">Korzyść</a>, <a href="/katalog/motyw/chciwosc/">Chciwość</a>, <a href="/katalog/motyw/bieda/">Bieda</a>, <a href="/katalog/motyw/bogactwo/">Bogactwo</a>, <a href="/katalog/motyw/skapiec/">Skąpiec</a>, <a href="/katalog/motyw/wlasnosc/">Własność</a>, <a href="/katalog/motyw/zlodziej/">Złodziej</a>, <a href="/katalog/motyw/zebrak/">Żebrak</a></span></li>
-
- <li>poświęcenie
- <span class="subcategories"><a href="/katalog/motyw/poswiecenie/">Poświęcenie</a>, <a href="/katalog/motyw/ofiara/">Ofiara</a>, <a href="/katalog/motyw/prometeusz/">Prometeusz</a>, <a href="/katalog/motyw/milosierdzie/">Miłosierdzie</a>, <a href="/katalog/motyw/chrystus/">Chrystus</a>, <a href="/katalog/motyw/zbawienie/">Zbawienie</a></span></li>
-
- <li>poznanie
- <span class="subcategories"><a href="/katalog/motyw/filozof/">Filozof</a>, <a href="/katalog/motyw/madrosc/">Mądrość</a>, <a href="/katalog/motyw/medrzec/">Mędrzec</a>, <a href="/katalog/motyw/glupiec/">Głupiec</a>, <a href="/katalog/motyw/glupota/">Głupota</a>, <a href="/katalog/motyw/rozum/">Rozum</a>, <a href="/katalog/motyw/wiedza/">Wiedza</a>, <a href="/katalog/motyw/prawda/">Prawda</a>, <a href="/katalog/motyw/falsz/">Fałsz</a></span></li>
-
- <li>poznanie alternatywne
- <span class="subcategories"><a href="/katalog/motyw/szaleniec/">Szaleniec</a>, <a href="/katalog/motyw/szalenstwo/">Szaleństwo</a>, <a href="/katalog/motyw/prawda/">Prawda</a>, <a href="/katalog/motyw/pozory/">Pozory</a>, <a href="/katalog/motyw/obraz-swiata/">Obraz świata</a>, <a href="/katalog/motyw/serce/">Serce</a>, <a href="/katalog/motyw/wiedza/">Wiedza</a>, <a href="/katalog/motyw/madrosc/">Mądrość</a>, <a href="/katalog/motyw/dusza/">Dusza</a>, <a href="/katalog/motyw/duch/">Duch</a>, <a href="/katalog/motyw/cialo/">Ciało</a></span></li>
-
- <li>praca
- <span class="subcategories"><a href="/katalog/motyw/praca/">Praca</a>, <a href="/katalog/motyw/sluga/">Sługa</a></span></li>
-
- <li>przyroda
- <span class="subcategories"><a href="/katalog/motyw/natura/">Natura</a>, <a href="/katalog/motyw/zywioly/">Żywioły</a>, <a href="/katalog/motyw/ogien/">Ogień</a>, <a href="/katalog/motyw/ziemia/">Ziemia</a>, <a href="/katalog/motyw/wiatr/">Wiatr</a>, <a href="/katalog/motyw/woda/">Woda</a>, <a href="/katalog/motyw/wiosna/">Wiosna</a>, <a href="/katalog/motyw/lato/">Lato</a>, <a href="/katalog/motyw/jesien/">Jesień</a>, <a href="/katalog/motyw/zima/">Zima</a>, <a href="/katalog/motyw/przemijanie/">Przemijanie</a>, <a href="/katalog/motyw/slonce/">Słońce</a>, <a href="/katalog/motyw/ksiezyc/">Księżyc</a>, <a href="/katalog/motyw/gwiazda/">Gwiazda</a>, <a href="/katalog/motyw/oblok/">Obłok</a>, <a href="/katalog/motyw/noc/">Noc</a>, <a href="/katalog/motyw/swiatlo/">Światło</a>, <a href="/katalog/motyw/gora/">Góra</a>, <a href="/katalog/motyw/rzeka/">Rzeka</a>, <a href="/katalog/motyw/morze/">Morze</a>, <a href="/katalog/motyw/burza/">Burza</a>, <a href="/katalog/motyw/deszcz/">Deszcz</a>, <a href="/katalog/motyw/bloto/">Błoto</a>, <a href="/katalog/motyw/przyroda-nieozywiona/">Przyroda nieożywiona</a>, <a href="/katalog/motyw/rosliny/">Rośliny</a>, <a href="/katalog/motyw/kwiaty/">Kwiaty</a>, <a href="/katalog/motyw/ogrod/">Ogród</a>, <a href="/katalog/motyw/sielanka/">Sielanka</a>, <a href="/katalog/motyw/raj/">Raj</a>, <a href="/katalog/motyw/jablko/">Jabłko</a>, <a href="/katalog/motyw/drzewo/">Drzewo</a>, <a href="/katalog/motyw/zwierzeta/">Zwierzęta</a>, <a href="/katalog/motyw/ptak/">Ptak</a>, <a href="/katalog/motyw/motyl/">Motyl</a>, <a href="/katalog/motyw/kot/">Kot</a>, <a href="/katalog/motyw/kon/">Koń</a>, <a href="/katalog/motyw/pies/">Pies</a>, <a href="/katalog/motyw/waz/">Wąż</a>, <a href="/katalog/motyw/potwor/">Potwór</a></span></li>
-
- <li>regulacja postępowania
- <span class="subcategories"><a href="/katalog/motyw/cnota/">Cnota</a>, <a href="/katalog/motyw/sprawiedliwosc/">Sprawiedliwość</a>, <a href="/katalog/motyw/obowiazek/">Obowiązek</a></span></li>
-
- <li>role społeczne
- <span class="subcategories"><a href="/katalog/motyw/kobieta/">Kobieta</a>, <a href="/katalog/motyw/mezczyzna/">Mężczyzna</a>, <a href="/katalog/motyw/maz/">Mąż</a>, <a href="/katalog/motyw/zona/">Żona</a>, <a href="/katalog/motyw/matka/">Matka</a>, <a href="/katalog/motyw/ojciec/">Ojciec</a>, <a href="/katalog/motyw/dziecko/">Dziecko</a>, <a href="/katalog/motyw/syn/">Syn</a>, <a href="/katalog/motyw/corka/">Córka</a>, <a href="/katalog/motyw/brat/">Brat</a>, <a href="/katalog/motyw/siostra/">Siostra</a>, <a href="/katalog/motyw/wdowa/">Wdowa</a>, <a href="/katalog/motyw/wdowiec/">Wdowiec</a>, <a href="/katalog/motyw/nauczyciel/">Nauczyciel</a>, <a href="/katalog/motyw/nauczycielka/">Nauczycielka</a>, <a href="/katalog/motyw/uczen/">Uczeń</a>, <a href="/katalog/motyw/poeta/">Poeta</a>, <a href="/katalog/motyw/literat/">Literat</a>, <a href="/katalog/motyw/lekarz/">Lekarz</a>, <a href="/katalog/motyw/sedzia/">Sędzia</a>, <a href="/katalog/motyw/krol/">Król</a>, <a href="/katalog/motyw/przywodca/">Przywódca</a>, <a href="/katalog/motyw/zolnierz/">Żołnierz</a>, <a href="/katalog/motyw/urzednik/">Urzędnik</a>, <a href="/katalog/motyw/filozof/">Filozof</a>, <a href="/katalog/motyw/ksiadz/">Ksiądz</a></span></li>
-
- <li>rycerskie czasy
- <span class="subcategories"><a href="/katalog/motyw/zamek/">Zamek</a>, <a href="/katalog/motyw/ruiny/">Ruiny</a>, <a href="/katalog/motyw/rycerz/">Rycerz</a>, <a href="/katalog/motyw/honor/">Honor</a>, <a href="/katalog/motyw/wiernosc/">Wierność</a>, <a href="/katalog/motyw/obowiazek/">Obowiązek</a>, <a href="/katalog/motyw/walka/">Walka</a>, <a href="/katalog/motyw/krol/">Król</a>, <a href="/katalog/motyw/dama/">Dama</a></span></li>
-
- <li>rzeczywistość nadprzyrodzona
- <span class="subcategories"><a href="/katalog/motyw/bog/">Bóg</a>, <a href="/katalog/motyw/chrystus/">Chrystus</a>, <a href="/katalog/motyw/matka-boska/">Matka Boska</a>, <a href="/katalog/motyw/aniol/">Anioł</a>, <a href="/katalog/motyw/szatan/">Szatan</a>, <a href="/katalog/motyw/diabel/">Diabeł</a>, <a href="/katalog/motyw/duch/">Duch</a>, <a href="/katalog/motyw/dusza/">Dusza</a>, <a href="/katalog/motyw/wampir/">Wampir</a>, <a href="/katalog/motyw/upior/">Upiór</a>, <a href="/katalog/motyw/czary/">Czary</a>, <a href="/katalog/motyw/czarownica/">Czarownica</a></span></li>
-
- <li>struktura społeczna
- <span class="subcategories"><a href="/katalog/motyw/chlop/">Chłop</a>, <a href="/katalog/motyw/mieszczanin/">Mieszczanin</a>, <a href="/katalog/motyw/zyd/">Żyd</a>, <a href="/katalog/motyw/szlachcic/">Szlachcic</a>, <a href="/katalog/motyw/ksiadz/">Ksiądz</a>, <a href="/katalog/motyw/robotnik/">Robotnik</a>, <a href="/katalog/motyw/krol/">Król</a>, <a href="/katalog/motyw/przywodca/">Przywódca</a>, <a href="/katalog/motyw/pozycja-spoleczna/">Pozycja społeczna</a>, <a href="/katalog/motyw/dworek/">Dworek</a>, <a href="/katalog/motyw/obyczaje/">Obyczaje</a></span></li>
-
- <li>sarmatyzm
- <span class="subcategories"><a href="/katalog/motyw/polak/">Polak</a>, <a href="/katalog/motyw/sarmata/">Sarmata</a>, <a href="/katalog/motyw/szlachcic/">Szlachcic</a>, <a href="/katalog/motyw/przedmurze-chrzescijanstwa/">Przedmurze chrześcijaństwa</a>, <a href="/katalog/motyw/matka-boska/">Matka Boska</a>, <a href="/katalog/motyw/religia/">Religia</a></span></li>
-
- <li>sprawowanie władzy
- <span class="subcategories"><a href="/katalog/motyw/urzednik/">Urzędnik</a>, <a href="/katalog/motyw/panstwo/">Państwo</a>, <a href="/katalog/motyw/wladza/">Władza</a>, <a href="/katalog/motyw/przemoc/">Przemoc</a>, <a href="/katalog/motyw/sad/">Sąd</a>, <a href="/katalog/motyw/kara/">Kara</a>, <a href="/katalog/motyw/wiezienie/">Więzienie</a></span></li>
-
- <li>śmierć
- <span class="subcategories"><a href="/katalog/motyw/smierc/">Śmierć</a>, <a href="/katalog/motyw/danse-macabre/">Danse macabre</a>, <a href="/katalog/motyw/gotycyzm/">Gotycyzm</a>, <a href="/katalog/motyw/grob/">Grób</a>, <a href="/katalog/motyw/otchlan/">Otchłań</a>, <a href="/katalog/motyw/pogrzeb/">Pogrzeb</a>, <a href="/katalog/motyw/samobojstwo/">Samobójstwo</a>, <a href="/katalog/motyw/krew/">Krew</a>, <a href="/katalog/motyw/trup/">Trup</a>, <a href="/katalog/motyw/morderstwo/">Morderstwo</a>, <a href="/katalog/motyw/zaloba/">Żałoba</a>, <a href="/katalog/motyw/zmartwychwstanie/">Zmartwychwstanie</a>, <a href="/katalog/motyw/melancholia/">Melancholia</a>, <a href="/katalog/motyw/vanitas/">Vanitas</a>, <a href="/katalog/motyw/los/">Los</a>, <a href="/katalog/motyw/kondycja-ludzka/">Kondycja ludzka</a></span></li>
-
- <li>środowisko miejskie i wiejskie
- <span class="subcategories"><a href="/katalog/motyw/miasto/">Miasto</a>, <a href="/katalog/motyw/warszawa/">Warszawa</a>, <a href="/katalog/motyw/mieszczanin/">Mieszczanin</a>, <a href="/katalog/motyw/handel/">Handel</a>, <a href="/katalog/motyw/robotnik/">Robotnik</a>, <a href="/katalog/motyw/zyd/">Żyd</a>, <a href="/katalog/motyw/wies/">Wieś</a>, <a href="/katalog/motyw/sielanka/">Sielanka</a>, <a href="/katalog/motyw/chlop/">Chłop</a>, <a href="/katalog/motyw/ogrod/">Ogród</a>, <a href="/katalog/motyw/natura/">Natura</a>, <a href="/katalog/motyw/przestrzen/">Przestrzeń</a></span></li>
-
- <li>świat w perspektywie etycznej
- <span class="subcategories"><a href="/katalog/motyw/kuszenie/">Kuszenie</a>, <a href="/katalog/motyw/zwatpienie/">Zwątpienie</a>, <a href="/katalog/motyw/wyrzuty-sumienia/">Wyrzuty sumienia</a>, <a href="/katalog/motyw/wina/">Wina</a>, <a href="/katalog/motyw/grzech/">Grzech</a>, <a href="/katalog/motyw/kara/">Kara</a>, <a href="/katalog/motyw/los/">Los</a>, <a href="/katalog/motyw/koniec-swiata/">Koniec świata</a>, <a href="/katalog/motyw/wieza-babel/">Wieża Babel</a>, <a href="/katalog/motyw/zbawienie/">Zbawienie</a>, <a href="/katalog/motyw/zaswiaty/">Zaświaty</a>, <a href="/katalog/motyw/czysciec/">Czyściec</a>, <a href="/katalog/motyw/raj/">Raj</a>, <a href="/katalog/motyw/niesmiertelnosc/">Nieśmiertelność</a>, <a href="/katalog/motyw/przysiega/">Przysięga</a>, <a href="/katalog/motyw/przeklenstwo/">Przekleństwo</a>, <a href="/katalog/motyw/religia/">Religia</a>, <a href="/katalog/motyw/obrzedy/">Obrzędy</a>, <a href="/katalog/motyw/modlitwa/">Modlitwa</a>, <a href="/katalog/motyw/niedziela/">Niedziela</a>, <a href="/katalog/motyw/przedmurze-chrzescijanstwa/">Przedmurze chrześcijaństwa</a>, <a href="/katalog/motyw/ksiadz/">Ksiądz</a>, <a href="/katalog/motyw/poboznosc/">Pobożność</a>, <a href="/katalog/motyw/swietoszek/">Świętoszek</a>, <a href="/katalog/motyw/swiety/">Święty</a>, <a href="/katalog/motyw/wierzenia/">Wierzenia</a>, <a href="/katalog/motyw/zabobony/">Zabobony</a></span></li>
-
- <li>świętowanie
- <span class="subcategories"><a href="/katalog/motyw/wesele/">Wesele</a>, <a href="/katalog/motyw/uczta/">Uczta</a>, <a href="/katalog/motyw/jedzenie/">Jedzenie</a>, <a href="/katalog/motyw/pijanstwo/">Pijaństwo</a>, <a href="/katalog/motyw/zabawa/">Zabawa</a>, <a href="/katalog/motyw/taniec/">Taniec</a>, <a href="/katalog/motyw/muzyka/">Muzyka</a>, <a href="/katalog/motyw/smiech/">Śmiech</a>, <a href="/katalog/motyw/spiew/">Śpiew</a>, <a href="/katalog/motyw/bijatyka/">Bijatyka</a>, <a href="/katalog/motyw/obyczaje/">Obyczaje</a>, <a href="/katalog/motyw/wierzenia/">Wierzenia</a>, <a href="/katalog/motyw/zabobony/">Zabobony</a></span></li>
-
- <li>tożsamość pozorna i podwójna
- <span class="subcategories"><a href="/katalog/motyw/portret/">Portret</a>, <a href="/katalog/motyw/lustro/">Lustro</a>, <a href="/katalog/motyw/cien/">Cień</a>, <a href="/katalog/motyw/sobowtor/">Sobowtór</a>, <a href="/katalog/motyw/maska/">Maska</a>, <a href="/katalog/motyw/przebranie/">Przebranie</a>, <a href="/katalog/motyw/stroj/">Strój</a>, <a href="/katalog/motyw/przemiana/">Przemiana</a></span></li>
-
- <li>trunki
- <span class="subcategories"><a href="/katalog/motyw/alkohol/">Alkohol</a>, <a href="/katalog/motyw/wino/">Wino</a>, <a href="/katalog/motyw/carpe-diem/">Carpe diem</a>, <a href="/katalog/motyw/pijanstwo/">Pijaństwo</a>, <a href="/katalog/motyw/karczma/">Karczma</a>, <a href="/katalog/motyw/obyczaje/">Obyczaje</a></span></li>
-
- <li>typy bohaterów
- <span class="subcategories"><a href="/katalog/motyw/samotnik/">Samotnik</a>, <a href="/katalog/motyw/buntownik/">Buntownik</a>, <a href="/katalog/motyw/pielgrzym/">Pielgrzym</a>, <a href="/katalog/motyw/szaleniec/">Szaleniec</a>, <a href="/katalog/motyw/filozof/">Filozof</a>, <a href="/katalog/motyw/medrzec/">Mędrzec</a>, <a href="/katalog/motyw/obcy/">Obcy</a>, <a href="/katalog/motyw/przywodca/">Przywódca</a>, <a href="/katalog/motyw/realista/">Realista</a>, <a href="/katalog/motyw/idealista/">Idealista</a>, <a href="/katalog/motyw/spolecznik/">Społecznik</a>, <a href="/katalog/motyw/syzyf/">Syzyf</a>, <a href="/katalog/motyw/prometeusz/">Prometeusz</a>, <a href="/katalog/motyw/sluga/">Sługa</a>, <a href="/katalog/motyw/uczen/">Uczeń</a></span></li>
-
- <li>ukrywanie/ujawnianie
- <span class="subcategories"><a href="/katalog/motyw/tajemnica/">Tajemnica</a>, <a href="/katalog/motyw/przysiega/">Przysięga</a>, <a href="/katalog/motyw/zdrada/">Zdrada</a>, <a href="/katalog/motyw/klamstwo/">Kłamstwo</a>, <a href="/katalog/motyw/falsz/">Fałsz</a></span></li>
-
- <li>upływ czasu
- <span class="subcategories"><a href="/katalog/motyw/wspomnienia/">Wspomnienia</a>, <a href="/katalog/motyw/marzenie/">Marzenie</a>, <a href="/katalog/motyw/pamiec/">Pamięć</a>, <a href="/katalog/motyw/przemijanie/">Przemijanie</a>, <a href="/katalog/motyw/czas/">Czas</a>, <a href="/katalog/motyw/smierc/">Śmierć</a></span></li>
-
- <li>widzenie
- <span class="subcategories"><a href="/katalog/motyw/oko/">Oko</a>, <a href="/katalog/motyw/wzrok/">Wzrok</a>, <a href="/katalog/motyw/sen/">Sen</a>, <a href="/katalog/motyw/marzenie/">Marzenie</a>, <a href="/katalog/motyw/wizja/">Wizja</a>, <a href="/katalog/motyw/przeczucie/">Przeczucie</a>, <a href="/katalog/motyw/duch/">Duch</a>, <a href="/katalog/motyw/dusza/">Dusza</a>, <a href="/katalog/motyw/proroctwo/">Proroctwo</a></span></li>
-
- <li>wina i przebaczenie
- <span class="subcategories"><a href="/katalog/motyw/grzech/">Grzech</a>, <a href="/katalog/motyw/wina/">Wina</a>, <a href="/katalog/motyw/wyrzuty-sumienia/">Wyrzuty sumienia</a>, <a href="/katalog/motyw/syn-marnotrawny/">Syn marnotrawny</a>, <a href="/katalog/motyw/pokora/">Pokora</a>, <a href="/katalog/motyw/przemiana/">Przemiana</a>, <a href="/katalog/motyw/milosierdzie/">Miłosierdzie</a>, <a href="/katalog/motyw/zbawienie/">Zbawienie</a></span></li>
-
- <li>wizerunki kobiety
- <span class="subcategories"><a href="/katalog/motyw/kobieta/">Kobieta</a>, <a href="/katalog/motyw/kobieta-demoniczna/">Kobieta demoniczna</a>, <a href="/katalog/motyw/kobieta-upadla/">Kobieta „upadła”</a>, <a href="/katalog/motyw/czarownica/">Czarownica</a>, <a href="/katalog/motyw/dama/">Dama</a>, <a href="/katalog/motyw/proznosc/">Próżność</a>, <a href="/katalog/motyw/cialo/">Ciało</a>, <a href="/katalog/motyw/corka/">Córka</a>, <a href="/katalog/motyw/siostra/">Siostra</a>, <a href="/katalog/motyw/zona/">Żona</a>, <a href="/katalog/motyw/matka/">Matka</a></span></li>
-
- <li>w kręgu sztuki
- <span class="subcategories"><a href="/katalog/motyw/artysta/">Artysta</a>, <a href="/katalog/motyw/sztuka/">Sztuka</a>, <a href="/katalog/motyw/literat/">Literat</a>, <a href="/katalog/motyw/poeta/">Poeta</a>, <a href="/katalog/motyw/poetka/">Poetka</a>, <a href="/katalog/motyw/poezja/">Poezja</a>, <a href="/katalog/motyw/muzyka/">Muzyka</a>, <a href="/katalog/motyw/taniec/">Taniec</a>, <a href="/katalog/motyw/spiew/">Śpiew</a>, <a href="/katalog/motyw/teatr/">Teatr</a>, <a href="/katalog/motyw/ksiazka/">Książka</a>, <a href="/katalog/motyw/slowo/">Słowo</a>, <a href="/katalog/motyw/slawa/">Sława</a>, <a href="/katalog/motyw/niesmiertelnosc/">Nieśmiertelność</a></span></li>
-
- <li>wychodźstwo i uwięzienie
- <span class="subcategories"><a href="/katalog/motyw/emigrant/">Emigrant</a>, <a href="/katalog/motyw/tesknota/">Tęsknota</a>, <a href="/katalog/motyw/obcy/">Obcy</a>, <a href="/katalog/motyw/wiezienie/">Więzienie</a>, <a href="/katalog/motyw/przemiana/">Przemiana</a>, <a href="/katalog/motyw/wiezien/">Więzień</a>, <a href="/katalog/motyw/wolnosc/">Wolność</a>, <a href="/katalog/motyw/niewola/">Niewola</a>, <a href="/katalog/motyw/wygnanie/">Wygnanie</a>, <a href="/katalog/motyw/zeslaniec/">Zesłaniec</a>, <a href="/katalog/motyw/zbrodnia/">Zbrodnia</a>, <a href="/katalog/motyw/zbrodniarz/">Zbrodniarz</a></span></li>
-
- <li>zagrożenie
- <span class="subcategories"><a href="/katalog/motyw/niebezpieczenstwo/">Niebezpieczeństwo</a>, <a href="/katalog/motyw/trucizna/">Trucizna</a>, <a href="/katalog/motyw/falsz/">Fałsz</a>, <a href="/katalog/motyw/zdrada/">Zdrada</a>, <a href="/katalog/motyw/choroba/">Choroba</a>, <a href="/katalog/motyw/smierc/">Śmierć</a></span></li>
-
- <li>zajęcia i zawody
- <span class="subcategories"><a href="/katalog/motyw/lekarz/">Lekarz</a>, <a href="/katalog/motyw/prawnik/">Prawnik</a>, <a href="/katalog/motyw/sedzia/">Sędzia</a>, <a href="/katalog/motyw/nauczyciel/">Nauczyciel</a>, <a href="/katalog/motyw/nauczycielka/">Nauczycielka</a>, <a href="/katalog/motyw/literat/">Literat</a>, <a href="/katalog/motyw/poeta/">Poeta</a>, <a href="/katalog/motyw/poetka/">Poetka</a>, <a href="/katalog/motyw/artysta/">Artysta</a>, <a href="/katalog/motyw/zolnierz/">Żołnierz</a>, <a href="/katalog/motyw/urzednik/">Urzędnik</a>, <a href="/katalog/motyw/sluga/">Sługa</a>, <a href="/katalog/motyw/rycerz/">Rycerz</a></span></li>
-
- <li>życie dworskie
- <span class="subcategories"><a href="/katalog/motyw/dworzanin/">Dworzanin</a>, <a href="/katalog/motyw/dwor/">Dwór</a>, <a href="/katalog/motyw/dama/">Dama</a>, <a href="/katalog/motyw/fircyk/">Fircyk</a>, <a href="/katalog/motyw/blazen/">Błazen</a>, <a href="/katalog/motyw/krol/">Król</a>, <a href="/katalog/motyw/urzednik/">Urzędnik</a>, <a href="/katalog/motyw/sluga/">Sługa</a>, <a href="/katalog/motyw/grzecznosc/">Grzeczność</a>, <a href="/katalog/motyw/obyczaje/">Obyczaje</a>, <a href="/katalog/motyw/pochlebstwo/">Pochlebstwo</a></span></li>
-
- <li>żywioły
- <span class="subcategories"><a href="/katalog/motyw/zywioly/">Żywioły</a>, <a href="/katalog/motyw/ogien/">Ogień</a>, <a href="/katalog/motyw/ziemia/">Ziemia</a>, <a href="/katalog/motyw/wiatr/">Wiatr</a>, <a href="/katalog/motyw/woda/">Woda</a>, <a href="/katalog/motyw/przestrzen/">Przestrzeń</a></span></li>
- </ol>
- <p><a href="#" class="hide-all-tags">{% trans "Hide" %}</a></p>
- </div>
- </div>
- <div class="clearboth"></div>
- </div>
- </div>
- <div class="clearboth"></div>
-
- <div id="site-info">
- <div id="latest-blog-posts">
- <h2>{% trans "News" %}</h2>
- {% cache 1800 latest-blog-posts %}
- {% latest_blog_posts "http://nowoczesnapolska.org.pl/category/wolne-lektury/feed/" %}
- {% endcache %}
- <p class="see-more"><a href="http://www.nowoczesnapolska.org.pl/">{% trans "See our blog" %} ⇒</a></p>
- </div>
- <div id="you-can-help">
- <h2>{% trans "You can help us!" %}</h2>
- <ul>
- <li>{% trans "Become a volunteer – an editor, developer or translator." %}</li>
- <li>{% trans "Gain new skills and experience." %}</li>
- <li>{% trans "Join an open project of creating an innovative online library." %}</li>
- </ul>
- <p class="see-more"><a href="{% url help_us %}" title="{% trans "You can help us!" %}">{% trans "You can help us!" %} ⇒</a></p>
- </div>
- <div id="about-us">
- <h2>{% trans "About us" %}</h2>
- <p>
- {% blocktrans %}
- Internet 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.
- {% endblocktrans %}
- </p>
- <p class="see-more"><a href="{% url about_us %}" title="{% trans "About us" %}">{% trans "See more" %} ⇒</a></p>
- </div>
- </div>
-{% endblock %}
-
-
-{% block add_footer %}
-
-<p>
-{% blocktrans %}
-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
-according to terms described in the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons
-3.0 Attribution License</a>.
-{% endblocktrans %}
-</p>
-
-{% endblock %}
+++ /dev/null
-{% extends "base.html" %}
-{% load i18n %}
-{% load chunks %}
-
-{% block title %}{{ object.page_title }}{% endblock %}
-
-{% block metadescription %}{{ object.left_column|striptags|truncatewords:10 }}{% endblock %}
-
-{% block body %}
- <h1>{{ object.title }}</h1>
- <form action="{% url search %}" method="get" accept-charset="utf-8" id="search-form">
- <p>{{ form.q }} <input type="submit" value="{% trans "Search" %}" /> <strong>{%trans "or" %}</strong> <a href="{% url main_page %}">{% trans "return to the main page" %}</a></p>
- </form>
-
- {% autoescape off %}
- <div class="column-left">
- {{ object.left_column }}
- </div>
- <div class="column-right">
- {{ object.right_column }}
- </div>
- {% endautoescape %}
-{% endblock %}
<p>{% blocktrans %}Become an editor of Wolne Lektury! Find out if
we're currently working on a reading you're looking for and prepare
a publication by yourself by logging into the Editorial Platform.{% endblocktrans %}
-<a href='{% url help_us %}'>{% trans "More..." %}</a></p>
+<a href='{% url infopage 'mozesz-nam-pomoc' %}'>{% trans "More..." %}</a></p>
--- /dev/null
+{% extends "base.html" %}
+{% load cache i18n catalogue_tags infopages_tags %}
+
+
+{% block body %}
+
+ <blockquote id="big-cite">
+ <a href='http://google.com'>
+ <h2 class="mono">Jarosław Lipszyc poleca:</h2>
+ <p id="big-cite-text">Dobranoc, obróć jeszcze raz na mnie oczęta,<br/>
+ (…) Daj mi pierś ucałować<br/>
+ Dobranoc, zapięta.</p>
+ <p class="mono" id="big-cite-source">Adam Mickiewicz, Dziady część III</p>
+ </a>
+ </blockquote>
+
+
+ {% spaceless %}
+
+
+ <div id="promo-box">
+ <div class="grid-line" id="promo-box-header">
+ <h2 class="mono">Trwa konkurs</h2>
+ </div>
+ <div id="promo-box-body">
+ <p id="promo-box-title" class="mono">Konkurs poezji automatycznej</p>
+ <p>Znacie Leśmianatora? To niewielki skrypt miskujący na życzenie
+ wiersze z Wolnych Lektur.</p>
+ </div>
+ </div>
+
+
+ <h2 class="grid-line"><span class="mono">Ostatnie publikacje</span></h2>
+ {% for book in last_published %}
+ {{ book.mini_box }}
+ {% endfor %}
+
+ <div class="infopages-box">
+ <h2 class="grid-line"><span class='mono'>Aktualności</span></h2>
+ {% cache 1800 latest-blog-posts %}
+ {% latest_blog_posts "http://nowoczesnapolska.org.pl/category/wolne-lektury/feed/" %}
+ {% endcache %}
+ </div>
+
+
+ <div class="infopages-box">
+ <h2 class="grid-line"><span class='mono'>Narzędzia</span></h2>
+
+ <ul>
+ <li><a href="{% url suggest %}" id="suggest-link">{% trans "Report a bug" %}</a></li>
+ <li><a href="http://turniej.wolnelektury.pl">Turniej Elektrybałtów</a></li>
+ <li><a href="{% url lesmianator %}">Leśmianator</a></li>
+ <li><a href="">{% trans "Mobile app" %}</a></li>
+ <li><a href="{% url infopage "widget" %}">{% trans "Widget" %}</a></li>
+ <li><a href="">{% trans "Public domain counter" %}</a></li>
+ <li><a href="{% url suggest_publishing %}">{% trans "Missing a book?" %}</a></li>
+ </ul>
+ </div>
+
+
+ <div class="infopages-box">
+ <h2 class="grid-line"><span class='mono'>Informacje</span></h2>
+
+ {% infopages_on_main %}
+
+ <div class="social-links">
+ <a href="http://pl-pl.facebook.com/pages/Wolne-Lektury/203084073268"><img src="{{ STATIC_URL }}img/social/facebook.png" alt="WolneLektury @ Facebook" /></a>
+ <a href="http://nk.pl/profile/30441509"><img src="{{ STATIC_URL }}img/social/naszaklasa.png" alt="WolneLektury @ NK" /></a>
+ </div>
+ </div>
+
+
+ {% endspaceless %}
+
+
+{% endblock %}
+
+
+
+
+
+
+
+ {# publication plan consultations - form link #}
+ <div style="clear:right;float:right" class="big-top-link">
+ <a href="{% url suggest_publishing %}" data-ajax="{% url suggest_publishing %}?ajax=1" id="suggest-publishing-link">
+ {% trans "Didn't find a book? Make a suggestion." %}
+ </a>
+ </div>
+
+
+
+
+ <div id="suggest-window">
+ <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
+ <div class="target">
+ <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
+ </div>
+ </div>
+ <div id="suggest-publishing-window">
+ <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
+ <div class="target">
+ <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
+ </div>
+ </div>
from infopages.models import InfoPage
class InfoPageTranslationOptions(TranslationOptions):
- fields = ('page_title', 'title', 'left_column', 'right_column')
+ fields = ('title', 'left_column', 'right_column')
translator.register(InfoPage, InfoPageTranslationOptions)
from django.conf import settings
from django.contrib import admin
-from catalogue.forms import SearchForm
-
-from infopages.models import InfoPage
-
admin.autodiscover()
-urlpatterns = patterns('',
+urlpatterns = patterns('wolnelektury.views',
+ url(r'^$', 'main_page', name='main_page'),
+)
+
+urlpatterns += patterns('',
url(r'^katalog/', include('catalogue.urls')),
url(r'^materialy/', include('lessons.urls')),
url(r'^opds/', include('opds.urls')),
url(r'^lesmianator/', include('lesmianator.urls')),
url(r'^przypisy/', include('dictionary.urls')),
url(r'^raporty/', include('reporting.urls')),
-
- # Static pages
- url(r'^mozesz-nam-pomoc/$', 'infopages.views.infopage', {'slug': 'help_us'}, name='help_us'),
- url(r'^o-projekcie/$', 'infopages.views.infopage', {'slug': 'about_us'}, name='about_us'),
- url(r'^widget/$', 'infopages.views.infopage', {'slug': 'widget'}, name='widget'),
+ url(r'^info/', include('infopages.urls')),
# Admin panel
url(r'^admin/catalogue/book/import$', 'catalogue.views.import_book', name='import_book'),
{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
url(r'^%s(?P<path>.*)$' % settings.STATIC_URL[1:], 'django.views.static.serve',
{'document_root': settings.STATIC_ROOT, 'show_indexes': True}),
- url(r'^$', 'django.views.generic.simple.redirect_to', {'url': 'katalog/',
- 'permanent': False}),
url(r'^i18n/', include('django.conf.urls.i18n')),
)
urlpatterns += patterns('django.views.generic.simple',
# old static pages - redirected
- (r'^1procent/$', 'redirect_to', {'url': 'http://nowoczesnapolska.org.pl/wesprzyj_nas/'}),
- (r'^wolontariat/$', 'redirect_to', {'url': '/mozesz-nam-pomoc/'}),
- (r'^epub/$', 'redirect_to', {'url': '/katalog/lektury/'}),
+ url(r'^1procent/$', 'redirect_to',
+ {'url': 'http://nowoczesnapolska.org.pl/wesprzyj_nas/'}),
+ url(r'^epub/$', 'redirect_to',
+ {'url': '/katalog/lektury/'}),
+ url(r'^mozesz-nam-pomoc/$', 'redirect_to',
+ {'url': '/info/mozesz-nam-pomoc'}),
+ url(r'^o-projekcie/$', 'redirect_to',
+ {'url': '/info/o-projekcie'}),
+ url(r'^widget/$', 'redirect_to',
+ {'url': '/info/widget'}),
+ url(r'^wolontariat/$', 'redirect_to',
+ {'url': '/info/mozesz-nam-pomoc/'}),
)
--- /dev/null
+from django.template import RequestContext
+from django.shortcuts import render_to_response
+from catalogue.models import Book
+
+
+def main_page(request):
+ last_published = Book.objects.exclude(html_file='').order_by('-created_at')[:4]
+
+ return render_to_response("main_page.html", locals(),
+ context_instance=RequestContext(request))
\ No newline at end of file