Merge branch 'master' of http://github.com/fnp/wolnelektury
authorLukasz <lukasz@anwajler.com>
Tue, 18 May 2010 08:30:32 +0000 (10:30 +0200)
committerLukasz <lukasz@anwajler.com>
Tue, 18 May 2010 08:30:32 +0000 (10:30 +0200)
Conflicts:
wolnelektury/settings.py
wolnelektury/templates/catalogue/book_stub_detail.html
wolnelektury/templates/catalogue/search_no_hits.html
wolnelektury/templates/catalogue/tagged_object_list.html

27 files changed:
apps/catalogue/views.py
deployment.py
wolnelektury.vhost.tmpl
wolnelektury/context_processors.py [new file with mode: 0644]
wolnelektury/settings.py
wolnelektury/static/css/master.book.css
wolnelektury/static/css/sponsors.css
wolnelektury/static/js/catalogue.js
wolnelektury/static/js/jquery.autocomplete.js
wolnelektury/templates/1percent.html
wolnelektury/templates/404.html
wolnelektury/templates/500.html
wolnelektury/templates/base.html
wolnelektury/templates/catalogue/book_detail.html
wolnelektury/templates/catalogue/book_fragments.html
wolnelektury/templates/catalogue/book_stub_detail.html
wolnelektury/templates/catalogue/book_text.html
wolnelektury/templates/catalogue/main_page.html
wolnelektury/templates/catalogue/search_multiple_hits.html [new file with mode: 0644]
wolnelektury/templates/catalogue/search_no_hits.html
wolnelektury/templates/catalogue/search_too_short.html [new file with mode: 0644]
wolnelektury/templates/catalogue/tagged_object_list.html
wolnelektury/templates/info/about_us.html
wolnelektury/templates/info/help_us.html
wolnelektury/templates/info/voluntary_services.html
wolnelektury/wolnelektury.fcgi [deleted file]
wolnelektury/wolnelektury.wsgi [deleted file]

index 7cbba27..07fb7d3 100644 (file)
@@ -7,6 +7,7 @@ import zipfile
 import sys
 import pprint
 import traceback
+import re
 
 from django.conf import settings
 from django.template import RequestContext
@@ -22,7 +23,9 @@ from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
 from django.utils import simplejson
 from django.utils.functional import Promise
 from django.utils.encoding import force_unicode
+from django.utils.http import urlquote_plus
 from django.views.decorators import cache
+from django.utils.translation import ugettext as _
 
 from catalogue import models
 from catalogue import forms
@@ -170,16 +173,24 @@ def book_text(request, slug):
 # ==========
 # = Search =
 # ==========
+
+def _no_diacritics_regexp(query):
+    """ returns a regexp for searching for a query without diacritics
+    
+    should be locale-aware """
+    names = {'a':u'ą', 'c':u'ć', 'e':u'ę', 'l': u'ł', 'n':u'ń', 'o':u'ó', 's':u'ś', 'z':u'ź|ż'}
+    def repl(m):
+        l = m.group()
+        return "(%s|%s)" % (l, names[l])
+    return re.sub('[%s]'%(''.join(names.keys())), repl, query)
+
 def _word_starts_with(name, prefix):
-    """returns a Q object gettings models having `name` contain a word
+    """returns a Q object getting models having `name` contain a word
     starting with `prefix`
     """
     kwargs = {}
     if settings.DATABASE_ENGINE in ('mysql', 'postgresql_psycopg2', 'postgresql'):
-        # we must escape `prefix` so that it only matches literally
-        for special in r'\^$.*+?|(){}[]':
-            prefix = prefix.replace(special, '\\' + special)
-        
+        prefix = _no_diacritics_regexp(re.escape(prefix))
         # we could use a [[:<:]] (word start), 
         # but we want both `xy` and `(xy` to catch `(xyz)`
         kwargs['%s__iregex' % name] = u"(^|[^[:alpha:]])%s" % prefix
@@ -190,6 +201,19 @@ def _word_starts_with(name, prefix):
     return Q(**kwargs)
 
 
+def _tags_exact_matches(prefix, user):
+    book_stubs = models.BookStub.objects.filter(title__iexact = prefix)
+    books = models.Book.objects.filter(title__iexact = prefix)
+    book_stubs = filter(lambda x: x not in books, book_stubs)
+    tags = models.Tag.objects.filter(name__iexact = prefix)
+    if user.is_authenticated():
+        tags = tags.filter(~Q(category='book') & (~Q(category='set') | Q(user=user)))
+    else:
+        tags = tags.filter(~Q(category='book') & ~Q(category='set'))
+
+    return list(books) + list(tags) + list(book_stubs)
+
+
 def _tags_starting_with(prefix, user):
     book_stubs = models.BookStub.objects.filter(_word_starts_with('title', prefix))
     books = models.Book.objects.filter(_word_starts_with('title', prefix))
@@ -203,6 +227,24 @@ def _tags_starting_with(prefix, user):
     return list(books) + list(tags) + list(book_stubs)
         
 
+
+def _get_result_link(match, tag_list):
+    if isinstance(match, models.Book) or isinstance(match, models.BookStub):
+        return match.get_absolute_url()
+    else:
+        return reverse('catalogue.views.tagged_object_list', 
+            kwargs={'tags': '/'.join(tag.slug for tag in tag_list + [match])}
+        )
+
+def _get_result_type(match):
+    if isinstance(match, models.Book) or isinstance(match, models.BookStub):
+        type = 'book'
+    else:
+        type = match.category
+    return dict(models.TAG_CATEGORIES)[type]
+    
+
+
 def search(request):
     tags = request.GET.get('tags', '')
     prefix = request.GET.get('q', '')
@@ -214,22 +256,25 @@ def search(request):
 
     # Prefix must have at least 2 characters
     if len(prefix) < 2:
-        return render_to_response('catalogue/search_no_hits.html', {'query':prefix, 'tags':tag_list},
+        return render_to_response('catalogue/search_too_short.html', {'tags':tag_list, 'prefix':prefix},
             context_instance=RequestContext(request))
     
-    result = _tags_starting_with(prefix, request.user)
-    if len(result) > 0:
-        tag = result[0]
-        if isinstance(tag, models.Book) or isinstance(tag, models.BookStub):
-            return HttpResponseRedirect(tag.get_absolute_url())
-        else:
-            tag_list.append(tag)
-            
-            return HttpResponseRedirect(reverse('catalogue.views.tagged_object_list', 
-                kwargs={'tags': '/'.join(tag.slug for tag in tag_list)}
-            ))
+    result = _tags_exact_matches(prefix, request.user)
+    
+    if len(result) > 1:
+        # multiple exact matches
+        return render_to_response('catalogue/search_multiple_hits.html', 
+            {'tags':tag_list, 'prefix':prefix, 'results':((x, _get_result_link(x, tag_list), _get_result_type(x)) for x in result)},
+            context_instance=RequestContext(request))
+    
+    if not result:
+        # no exact matches
+        result = _tags_starting_with(prefix, request.user)
+    
+    if result:
+        return HttpResponseRedirect(_get_result_link(result[0], tag_list))
     else:
-        return render_to_response('catalogue/search_no_hits.html', {'query':prefix, 'tags':tag_list},
+        return render_to_response('catalogue/search_no_hits.html', {'tags':tag_list, 'prefix':prefix},
             context_instance=RequestContext(request))
 
 
@@ -455,7 +500,7 @@ def register(request):
 @cache.never_cache
 def logout_then_redirect(request):
     auth.logout(request)
-    return HttpResponseRedirect(request.GET.get('next', '/'))
+    return HttpResponseRedirect(urlquote_plus(request.GET.get('next', '/'), safe='/?='))
 
 
 
index b156b93..ab19880 100644 (file)
@@ -31,7 +31,7 @@ def update_application():
     os.system("%s install -r %s" % (PIP, os.path.join(ROOT, 'etc', 'requirements.txt')))
     print "done."
 
-ROOT = os.path.dirname(os.path.abspath(__file__))
+ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 
 PYTHON = os.path.join(ROOT, 'pythonenv', 'bin', 'python')
 PIP = os.path.join(ROOT, 'pythonenv', 'bin', 'pip')
index fbd21a9..6fac756 100644 (file)
@@ -1,6 +1,5 @@
 <VirtualHost *:80>
     ServerName $DOMAIN
-    ServerAlias $DOMAIN_ALIASES
     ServerAdmin $ADMIN_EMAIL
 
     WSGIDaemonProcess $PROJECT_NAME user=$WSGI_USER group=$WSGI_USER processes=$WSGI_PROCESSES threads=$WSGI_THREADS display-name=%{GROUP}
@@ -14,7 +13,6 @@
 
     Alias /media $MEDIA_ROOT
     <Directory $MEDIA_ROOT >
-        Options Indexes, FollowLinks
         Order allow,deny
         Allow from all
     </Directory>
diff --git a/wolnelektury/context_processors.py b/wolnelektury/context_processors.py
new file mode 100644 (file)
index 0000000..0cbf605
--- /dev/null
@@ -0,0 +1,6 @@
+
+def extra_settings(request):
+    from django.conf import settings
+    return {
+        'STATIC_URL': settings.STATIC_URL,
+    }
index ef6887e..888ea34 100644 (file)
@@ -67,6 +67,7 @@ TEMPLATE_CONTEXT_PROCESSORS = [
     'django.core.context_processors.i18n',
     'django.core.context_processors.media',
     'django.core.context_processors.request',
+    'wolnelektury.context_processors.extra_settings',
 ]
 
 MIDDLEWARE_CLASSES = [
@@ -96,7 +97,7 @@ INSTALLED_APPS = [
     'django.contrib.sites',
     'django.contrib.admin',
     'django.contrib.admindocs',
-    
+
     # external
     'south',
     'sorl.thumbnail',
index b0d3542..26a11c6 100644 (file)
@@ -194,10 +194,13 @@ blockquote {
 /* ============= */
 /* = Numbering = */
 /* ============= */
+.verse {
+       position:relative;
+}
 .anchor {
     position: absolute;
     margin: -0.25em -0.5em;
-    left: 1em;
+    left: -3em;
     color: #777;
     font-size: 12px;
     width: 2em;
@@ -317,3 +320,11 @@ em.person {
     font-variant: small-caps;
 }
 
+
+/* =================================== */
+/* = Hide some elements for printing = */
+/* =================================== */
+
+@media print {
+    #menu {display: none;}
+}
index 9f6a9bb..f780972 100644 (file)
@@ -5,4 +5,4 @@
 
 .sponsors-sponsor-logo {
     float: left;
-}c
\ No newline at end of file
+}
\ No newline at end of file
index b356183..d57f743 100644 (file)
@@ -1,4 +1,3 @@
-alert(LANGUAGE_CODE);
 var LOCALE_TEXTS = {
        "pl": {
                "DELETE_SHELF": "Czy na pewno usunąć półkę",
@@ -43,8 +42,6 @@ var LOCALE_TEXTS = {
                "LOADING": "Translate me!",                             
        }
 }
-
-alert(LOCALE_TEXTS[LANGUAGE_CODE]['DELETE_SHELF']);
 var BANNER_TEXTS = [
     'Przekaż 1% żeby ukryć ten baner.',
     'Jak dobrze wydać 1% swojego podatku? <strong>Poradnik dla opornych</strong>.',
@@ -126,14 +123,16 @@ function serverTime() {
                     function() { $(this).css({background: '#FFF'}); }
                 ).click(function() {
                     $(this).fadeOut(function() {
-                        $(this).prev().fadeIn()
+                        $(this).prev().fadeIn();
                     });
+                    return false;
                 })
             }
         });
         
         $('.fragment-short-text').click(function() {
             $(this).fadeOut(function() { $(this).next().fadeIn() });
+            return false;
         }).hover(
             function() { $(this).css({background: '#F3F3F3', cursor: 'pointer'}); },
             function() { $(this).css({background: '#FFF'}); }
index 7cdb359..4e425e8 100644 (file)
@@ -430,8 +430,22 @@ $.Autocompleter.defaults = {
        width: 0,
        multiple: false,
        multipleSeparator: ", ",
+    regex_escape: function(term) {
+        term = term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1");
+        /* no polish diacritics; should be more locale-aware */
+        term = term.replace(/a/g, '[aą]')
+                .replace(/c/g, '[cć]')
+                .replace(/e/g, '[eę]')
+                .replace(/l/g, '[lł]')
+                .replace(/n/g, '[nń]')
+                .replace(/o/g, '[oó]')
+                .replace(/s/g, '[sś]')
+                .replace(/z/g, '[zźż]');
+        return term;
+    },
        highlight: function(value, term) {
-               return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
+               term = $.Autocompleter.defaults.regex_escape(term);
+               return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
        },
     scroll: true,
     scrollHeight: 180
@@ -447,7 +461,8 @@ $.Autocompleter.Cache = function(options) {
                        s = s.toLowerCase();
                var i = s.indexOf(sub);
                if (options.matchContains == "word"){
-                       i = s.toLowerCase().search("\\b" + sub.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1").toLowerCase());
+                       query = $.Autocompleter.defaults.regex_escape(sub.toLowerCase());
+                       i = s.toLowerCase().search("\\b" + query);
                }
                if (i == -1) return false;
                return i == 0 || options.matchContains;
index e53caee..d7bbdc0 100644 (file)
@@ -4,10 +4,10 @@
 {% block title %}1% podatku na WolneLektury.pl{% endblock title %}
 
 {% block extrahead %}
-    <link rel="stylesheet" href="/static/css/reset.css" type="text/css" charset="utf-8" />
-    <link rel="stylesheet" href="/static/css/960.css" type="text/css" charset="utf-8" />
-    <link rel="stylesheet" href="/static/css/text.css" type="text/css" charset="utf-8" />
-    <link rel="stylesheet" href="/static/css/1percent.css" type="text/css" charset="utf-8" />
+    <link rel="stylesheet" href="{{ STATIC_URL }}css/reset.css" type="text/css" charset="utf-8" />
+    <link rel="stylesheet" href="{{ STATIC_URL }}css/960.css" type="text/css" charset="utf-8" />
+    <link rel="stylesheet" href="{{ STATIC_URL }}css/text.css" type="text/css" charset="utf-8" />
+    <link rel="stylesheet" href="{{ STATIC_URL }}css/1percent.css" type="text/css" charset="utf-8" />
 {% endblock extrahead %}
 
 {% block bodycontent %}
         
         <div id="header" class="grid_12">
             <div id="logos" class="alpha grid_5 suffix_1">
-                <img src="/static/img/logo-big.png" />
-                <img src="/static/img/1percent-big.png" />
+                <img src="{{ STATIC_URL }}img/logo-big.png" />
+                <img src="{{ STATIC_URL }}img/1percent-big.png" />
             </div>
             <div id="title" class="omega grid_6">
-                <img src="/static/img/tagline.png" />
+                <img src="{{ STATIC_URL }}img/tagline.png" />
             </div>
         </div>
         
@@ -41,7 +41,7 @@
                 <p>Przy wypełnianiu formularza PIT w polu <em>wniosek o przekazanie 1% podatku na rzecz OPP</em> wpisz:</p>
 <pre>Fundacja Nowoczesna Polska
 KRS 0000070056</pre>
-                <img src="/static/img/pit37.png" />
+                <img src="{{ STATIC_URL }}img/pit37.png" />
                 <a href="https://www.pitroczny.pl/pit?krs=0000070056"><img src="http://www.pitroczny.pl/pl/resources/images/1oppmini.png" alt="1% dla OPP" style="float: left; margin: 8px 8px 0 0" ></a>
                 <p>Skorzystaj z programu ułatwiającego przygotowanie deklaracji podatkowej on-line.</p>
             </div>
index 288e050..ebf7d15 100644 (file)
@@ -6,12 +6,12 @@
 <title>404 - {% trans "Site does not exist" %} - WolneLektury.pl</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.2/build/reset/reset-min.css"> 
-<link rel="stylesheet" href="/static/css/error.css" type="text/css" />
+<link rel="stylesheet" href="{{ STATIC_URL }}css/error.css" type="text/css" />
 </head>
 
 <body>
 
-<a href="/"><img src="/static/img/logo.png" /></a>
+<a href="/"><img src="{{ STATIC_URL }}img/logo.png" /></a>
 <p class="haj" style="font-weight: bold">{% trans "Site does not exist" %}</p>
 <p>
 {% trans "We are sorry, but this site does not exist. Please check if you entered correct address or go to "%} <a href="/">{% trans "main page" %}</a>.
index 412ea10..964b905 100644 (file)
@@ -6,12 +6,12 @@
 <title>500 - {% trans "Server error" %} WolneLektury.pl</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.2/build/reset/reset-min.css"> 
-<link rel="stylesheet" href="/static/css/error.css" type="text/css" />
+<link rel="stylesheet" href="{{ STATIC_URL }}css/error.css" type="text/css" />
 </head>
 
 <body>
 
-<a href="/"><img src="/static/img/logo.png" /></a>
+<a href="/"><img src="{{ STATIC_URL }}img/logo.png" /></a>
 <p class="haj" style="font-weight: bold">{% trans "Server error" %}</p>
 <p>
 {% trans "We are sorry for your inconvenience, but server error occured. We are working on fixing it as soon as possible. Meanwhile, please go to " %}<a href="/">{% trans "main page" %}</a>.
index 47d84d6..7ba33b9 100644 (file)
@@ -6,7 +6,7 @@
     <head>
         <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
         <title>{% block title %}WolneLektury.pl{% endblock %}</title>
-        <link rel="icon" href="/static/img/favicon.png" type="image/x-icon" />
+        <link rel="icon" href="{{ STATIC_URL }}img/favicon.png" type="image/x-icon" />
         {% compressed_css "all" %}
         <script type="text/javascript">var LANGUAGE_CODE = "{{ LANGUAGE_CODE}}";</script>
         {% compressed_js "jquery" %}
         {% endblock %}
     </head>
     <body id="{% block bodyid %}base{% endblock %}">
-        <!--[if lt IE 7]><link href=/static/infobar/infobar.css rel=stylesheet>
+        <!--[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/infobar/infobar.js></script><![endif]-->
+        </a></div><div id=viewplot><script src={{ STATIC_URL }}infobar/infobar.js></script><![endif]-->
         {% block bodycontent %}
         <div id="top-message">
             {% chunk "top-message" %}
@@ -29,7 +29,7 @@
         </div>
         <div id="header">
             <div id="logo">
-                <a href="/"><img src="/static/img/logo.png" alt="WolneLektury.pl - logo" /></a>
+                <a href="/"><img src="{{ STATIC_URL }}img/logo.png" alt="WolneLektury.pl - logo" /></a>
             </div>
             <div id="user-info" style="display:none">
                 {% if user.is_authenticated %}
@@ -46,9 +46,9 @@
                 {% endif %}
             </div>
             <div class="social-links" style="float:right">
-                <a href="http://pl-pl.facebook.com/pages/Wolne-Lektury/203084073268"><img src="/static/img/social/facebook.png" /></a>
-                <a href="http://twitter.com/wolnelektury"><img src="/static/img/social/twitter.png" /></a>
-                <a href="http://nasza-klasa.pl/profile/30441509"><img src="/static/img/social/naszaklasa.png" /></a>     
+                <a href="http://pl-pl.facebook.com/pages/Wolne-Lektury/203084073268"><img src="{{ STATIC_URL }}img/social/facebook.png" /></a>
+                <a href="http://twitter.com/wolnelektury"><img src="{{ STATIC_URL }}img/social/twitter.png" /></a>
+                <a href="http://nasza-klasa.pl/profile/30441509"><img src="{{ STATIC_URL }}img/social/naszaklasa.png" /></a>     
             </div>
                        <div class="lang-menu" style="float:right;">
                                <form action="/i18n/setlang/" method="post">
         <div id="user-shelves-window">
             <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
             <div class="target">
-                <p><img src="/static/img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
+                <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
             </div>
         </div>
         {% endblock bodycontent %}
index c249fa5..3212ef4 100644 (file)
@@ -41,7 +41,7 @@
             {% endif %}
             {% if book.mp3_file %}
                 <div id="czytamy-sluchajac-info">
-                    <a href="http://czytamysluchajac.pl/" id="czytamysluchajac-logo"><img src="/static/img/czytamysluchajac-logo-small.png" /></a>     
+                    <a href="http://czytamysluchajac.pl/" id="czytamysluchajac-logo"><img src="{{ STATIC_URL }}img/czytamysluchajac-logo-small.png" /></a>     
                     <p>{% trans "Artist" %}: {{ book.get_extra_info_value.artist_name }}</p>
                                        {% if book.get_extra_info_value.director_name %}
                         <p>{% trans "Director" %}: {{ book.get_extra_info_value.director_name }}</p>
@@ -51,8 +51,8 @@
             {% if book.mp3_file %}<a href="{{ book.mp3_file.url }}">{% trans "Download MP3" %}</a>{% endif %}
             {% if book.ogg_file %}<a href="{{ book.ogg_file.url }}">{% trans "Download Ogg Vorbis" %}</a>{% endif %}
             {% if book.mp3_file %}
-            <object type="application/x-shockwave-flash" style="margin-top: 0.5em" data="/static/player.swf" width="426" height="20">
-                <param name="movie" value="/static/player.swf" />
+            <object type="application/x-shockwave-flash" style="margin-top: 0.5em" data="{{ STATIC_URL }}player.swf" width="426" height="20">
+                <param name="movie" value="{{ STATIC_URL }}player.swf" />
                 <param name="bgcolor" value="#ffffff" />
                 <param name="FlashVars" value="mp3={{ book.mp3_file.url }}&amp;width=426&amp;showvolume=1&amp;bgcolor1=eeeeee&amp;bgcolor2=eeeeee&amp;buttoncolor=666666" />
             </object>
     <div id="set-window">
         <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
         <div class="target">
-            <p><img src="/static/img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
+            <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
         </div>
     </div>
 {% endblock %}
\ No newline at end of file
index 0a90e45..550787d 100644 (file)
@@ -32,7 +32,7 @@
     <div id="set-window">
         <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
         <div class="target">
-            <p><img src="/static/img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
+            <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
         </div>
     </div>
 {% endblock %}
\ No newline at end of file
index 9ed3a8b..c03db37 100644 (file)
@@ -29,7 +29,7 @@
     <div id="set-window">
         <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
         <div class="target">
-            <p><img src="/static/img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
+            <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
         </div>
     </div>
 {% endblock %}
\ No newline at end of file
index 39934f8..d828265 100644 (file)
@@ -6,7 +6,7 @@
     <head>
         <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
         <title>{% block title %}WolneLektury.pl{% endblock %}</title>
-        <link rel="icon" href="/static/img/favicon.png" type="image/x-icon" />
+        <link rel="icon" href="{{ STATIC_URL }}img/favicon.png" type="image/x-icon" />
         {% compressed_css "book" %}
         {% compressed_js "jquery" %}
         {% compressed_js "book" %}
@@ -20,7 +20,7 @@
         </div>
         <div id="header">
             <div id="logo">
-                <a href="/"><img src="/static/img/logo.png" alt="WolneLektury.pl - logo" /></a>
+                <a href="/"><img src="{{ STATIC_URL }}img/logo.png" alt="WolneLektury.pl - logo" /></a>
             </div>
         </div>
         <div id="themes">
index 1566750..292d004 100644 (file)
@@ -43,7 +43,7 @@
                 <p class="see-more"><a href="{% url lessons_document_list %}">{% trans " See more" %} ⇒</a></p>
             </div>
             <div id="czytamysluchajac">
-                <a href="http://czytamysluchajac.pl/"><img src="/static/img/czytamysluchajac-logo-small.png" /></a>
+                <a href="http://czytamysluchajac.pl/"><img src="{{ STATIC_URL }}img/czytamysluchajac-logo-small.png" /></a>
                 <p><a href="http://czytamysluchajac.pl/">Czytamy Słuchając</a> {% trans "are professional recordings of literary texts from our repository, available on free license in MP3 and Ogg Vorbis formats as well as in DAISY system." %}</p>
                 <p class="see-more"><a href="http://czytamysluchajac.pl/index.php/o-projekcie/">{% trans "See more" %} ⇒</a></p>
             </div>
diff --git a/wolnelektury/templates/catalogue/search_multiple_hits.html b/wolnelektury/templates/catalogue/search_multiple_hits.html
new file mode 100644 (file)
index 0000000..cc93d56
--- /dev/null
@@ -0,0 +1,27 @@
+{% extends "base.html" %}
+{% load catalogue_tags pagination_tags %}
+
+{% block title %}Wyszukiwanie w WolneLektury.pl{% endblock %}
+
+{% block bodyid %}tagged-object-list{% endblock %}
+
+{% block body %}
+    <h1>{% title_from_tags tags %}</h1>
+    {% breadcrumbs tags %}
+    
+    <div id="books-list">
+        <p>Znaleziono więcej niż jeden wynik odpowiadający kryteriom wyszukiwania.</p>
+               <ul class='matches'>
+        {% for match, link, type in results %}
+            <li><a href='{{ link }}'>{{ match.name }}</a> ({{ type }})</li>
+        {% endfor %}
+               </ul>
+    </div>
+
+    <div id="set-window">
+        <div class="header"><a href="#" class="jqmClose">Zamknij</a></div>
+        <div class="target">
+            <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> Ładowanie</p>
+        </div>
+    </div>
+{% endblock %}
\ No newline at end of file
index b2a71c8..f91b9c8 100644 (file)
     
     <div id="books-list">
         <p>{% trans "Search of " %}<i>{{ query }}</i> {% trans "did not match any resources." %}</p>
+               
+               <p>{% transblock %}Search engine supports following criteria: title, author, theme/topic, epoch, kind and genre.
+               As for now we do not support full text search.{% endtransblock %}</p>
         {% include "info/join_us.html" %}
     </div>
 
     <div id="set-window">
         <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
         <div class="target">
-            <p><img src="/static/img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
+            <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
         </div>
     </div>
 {% endblock %}
\ No newline at end of file
diff --git a/wolnelektury/templates/catalogue/search_too_short.html b/wolnelektury/templates/catalogue/search_too_short.html
new file mode 100644 (file)
index 0000000..db9e585
--- /dev/null
@@ -0,0 +1,23 @@
+{% extends "base.html" %}
+{% load catalogue_tags pagination_tags %}
+
+{% block title %}Wyszukiwanie w WolneLektury.pl{% endblock %}
+
+{% block bodyid %}tagged-object-list{% endblock %}
+
+{% block body %}
+    <h1>{% title_from_tags tags %}</h1>
+    {% breadcrumbs tags %}
+    
+    <div id="books-list">
+        <p>Przepraszamy! Wyszukiwana fraza musi mieć co najmniej dwa znaki.</p>
+        {% include "info/join_us.html" %}
+    </div>
+
+    <div id="set-window">
+        <div class="header"><a href="#" class="jqmClose">Zamknij</a></div>
+        <div class="target">
+            <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> Ładowanie</p>
+        </div>
+    </div>
+{% endblock %}
\ No newline at end of file
index 230d8ed..3f9c5ba 100644 (file)
             </a>
             <div id="download-shelf-menu" style="display:none;">
                 <form action="{% url download_shelf last_tag.slug %}" method="get" accept-charset="utf-8" id="download-formats-form" data-formats-feed="{% url shelf_book_formats last_tag.slug %}">
-                    <p>{% trans "Choose books' which you want to download:" %}</p>
+                    <p>{% trans "Choose books' formats which you want to download:" %}</p>
                     <li data-format="pdf"><label for="id_formats_2"><input type="checkbox" name="formats" value="pdf" id="id_formats_2" /> PDF</label> <em><strong>{% trans "for reading" %}</strong> {% trans "and printing using" %} <a href="http://get.adobe.com/reader/">Adobe Reader</a></em></li>
                     <li data-format="odt"><label for="id_formats_3"><input type="checkbox" name="formats" value="odt" id="id_formats_3" /> ODT</label> <em><strong>{% trans "for reading" %}</strong> {% trans "and editing using" %} <a href="http://pl.openoffice.org/">OpenOffice.org</a></em></li>
                     <li data-format="txt"><label for="id_formats_4"><input type="checkbox" name="formats" value="txt" id="id_formats_4" /> TXT</label> <em><strong>{% trans "for reading" %}</strong> {% trans "on small displays, for example mobile phones" %}</em></li>
                     <li data-format="mp3"><label for="id_formats_0"><input type="checkbox" name="formats" value="mp3" id="id_formats_0" /> MP3</label> <em><strong>{% trans "for listening" %}</strong> {% trans "on favourite MP3 player" %}</em></li>
                     <li data-format="ogg"><label for="id_formats_1"><input type="checkbox" name="formats" value="ogg" id="id_formats_1" /> Ogg Vorbis</label> <em><strong>{% trans "for listening" %}</strong> &mdash; {% trans "open format" %} <a href="http://www.vorbis.com/">{% trans "Xiph.org Foundation" %}</a></em></li>
-                    <li id="download-formats-form-submit-li"><label><input type="submit" name="submit" value="{% trans "Download" %}" id="download-formats-form-submit" disabled="disabled" />&nbsp;<img src="/static/img/indicator.gif" /></label> <span id="updating-formats">{% trans "Updating list of books' formats on the shelf" %}</span><span id="formats-updated" style="display:none;">{% trans "or" %} <a href="#" id="download-formats-form-cancel">{% trans "cancel" %}</a></span></li>
+                    <li id="download-formats-form-submit-li"><label><input type="submit" name="submit" value="{% trans "Download" %}" id="download-formats-form-submit" disabled="disabled" />&nbsp;<img src="{{ STATIC_URL }}img/indicator.gif" /></label> <span id="updating-formats">{% trans "Updating list of books' formats on the shelf" %}</span><span id="formats-updated" style="display:none;">{% trans "or" %} <a href="#" id="download-formats-form-cancel">{% trans "cancel" %}</a></span></li>
                     <div class="clearboth"></div>
                 </form>
             </div>
                                        {% trans "This author's works are copyrighted." %}
                                {% else %}{% comment %} Is dead {% endcomment %}
                    {% if last_tag.in_pd %}
-                                               {% trans "This author's works are in public domain and will be published on Internet school library of Wolne Lektury soon." %} 
-                       {% else %}{% comment %} Is dead, but not yet in public domain {% endcomment %}
+                                               <p>{% trans "This author's works are in public domain and will be published on Internet school library of Wolne Lektury soon." %}</p>            
+                       {% else %}
+                                               {% comment %} Is dead, but not yet in public domain {% endcomment %}
                        <div>
                                <p>{% trans "This author's works will become part of public domain and will be allowed to be published without restrictions in:" %}</p>
                                                        {% include "catalogue/pd_counter.html" %}
+                            <p>Dowiedz się, dlaczego biblioteki internetowe
+                            nie mogą udostępniać dzieł tego autora.</p>
                                                </div>
                        {% endif %}
                 {% endif %}
     <div id="set-window">
         <div class="header"><a href="#" class="jqmClose">{% trans "Close" %}</a></div>
         <div class="target">
-            <p><img src="/static/img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
+            <p><img src="{{ STATIC_URL }}img/indicator.gif" alt="*"/> {% trans "Loading" %}</p>
         </div>
     </div>
 {% endblock %}
\ No newline at end of file
index 37ad44b..7f43802 100644 (file)
@@ -1,4 +1,5 @@
 {% extends "base.html" %}
+{% load chunks %}
 
 {% block title %}O projekcie WolneLektury.pl{% endblock %}
 
     </form>
 
     <div class="column-left">
-        <h2>Wolne Lektury</h2>
-    
-        <p>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. Są one
-        opracowane, opatrzone komentarzem i udostępnione w kilku formatach (html, odt, txt i pdf). Można je zgodnie z
-        prawem, bezpłatnie przeglądać, ściągać na swój komputer, a także udostępniać innym i cytować.</p>
-        
-         <p>Zespół projektu Wolne Lektury składa się z doświadczonych redaktorek i nauczycielek, co zapewnia rzetelność
-        naszego portalu. W tworzeniu go współpracujemy z Biblioteką Narodową, która dostarcza nam najlepszych dostępnych
-        wydań i opracowań krytycznych lektur szkolnych, opublikowanych w Cyfrowej Bibliotece Narodowej Polona. Wspólnie
-        staramy się, aby teksty lektur – nasze dziedzictwo kulturowe – były dostępne dla wszystkich, niezależnie od
-        miejsca zamieszkania, zasobności portfela, sprawności lub jej braku. Jest to możliwe dzięki istnieniu domeny
-        publicznej, czyli zbioru dzieł nieobjętych restrykcjami prawa autorskiego, oraz dzięki nowoczesnym technologiom
-        – narzędziom, które pozwalają zwielokrotnić dostępność treści upublicznianych w Internecie.</p>
-        
-         <p>Projekt Wolne Lektury jest całkowicie niekomercyjny i realizowany pro publico bono. Dlatego tak ważne jest
-        dla nas poparcie udzielone przez wybitne osobistości kultury i nauki. Patronat honorowy nad projektem Wolne 
-        Lektury sprawuje Ministerstwo Kultury i Dziedzictwa Narodowego, Ministerstwo Edukacji Narodowej oraz
-        Stowarzyszenie Pisarzy Polskich.. W Komitecie Honorowym Wolnych Lektur zgodzili się uczestniczyć prof. Maria
-        Janion, prof. Grażyna Borkowska, prof. Przemysław
-        Czapliński, prof. Mieczysław Dąbrowski, prof. Ewa Kraskowska, prof. Małgorzata Czermińska, prof. Jerzy Jarzębski
-        i prof. Piotr Śliwiński.</p>
-        
-         <p>Digitalizacją i korektą tekstów zajmuje się Biblioteka Narodowa. Serwis internetowy został zaprojektowany
-        przez 2ia. Autorem języka składu tekstów Wolnych Lektur opartego na języku XML jest Dariusz Gałecki. Obsługę
-        prawną Wolnych Lektur zapewnia Kancelaria Grynhoff,
-        Woźny, Maliński. Hosting serwisu zapewnia
-        firma EO Networks. W opracowaniu technicznym tekstów pomaga wydawnictwo Korporacja Ha!Art. Logo Wolne Lektury
-        jest dziełem agencji PZL. Projekt objęli patronatem medialnym: Dziennik, Elle, Tok.fm, Biblioteka Analiz,
-        Tygodnik Powszechny, Przekrój i TVP Kultura.</p>
-        
-        <h2>Jak korzystać z Wolnych Lektur?</h2>
-        
-         <p>Najważniejszą innowacją Wolnych Lektur, odróżniającą ten projekt od innych bibliotek internetowych, jest
-        możliwość przeszukiwania tekstów z zastosowaniem różnych kryteriów: tradycyjnych, takich jak tytuł, autor,
-        epoka, rodzaj, gatunek literacki, ale i niespotykanych nigdzie indziej, to jest odnoszących się do treści wielu
-        utworów naraz – motywów i tematów literackich. Takie przeszukiwanie jest możliwe dzięki specjalnemu opracowaniu
-        tekstów lektur szkolnych, to znaczy opisaniu ich za pomocą wymienionych kryteriów. Tym właśnie Wolne Lektury
-        różnią się od licznych stron z opracowaniami lektur szkolnych – dostarczają narzędzi do twórczej pracy z
-        tekstem, a nie gotowych ściąg. Jeśli np. uczeń dostanie temat pracy domowej: „Motyw dziecka w romantyzmie na
-        podstawie wybranych utworów“, to trzy kliknięcia na naszej stronie sprawią, że na ekranie komputera pojawi mu
-        się komplet tekstów do analizy. Dzięki takim narzędziom czytanie lektur staje się fascynującą podróżą po świecie
-        kultury.</p>
-        
-         <p>Kolejną użyteczną funkcjonalnością Wolnych Lektur, przydatną w pracy w szkole, jest możliwość układania
-        całych zestawów tekstów przerabianych na przykład w ciągu roku przez daną klasę. Takie półki z lekturami są
-        tworzone przez nauczycielkę/la, która/y może następnie wysłać swoim uczniom odnośnik (link) do tego zbioru, a
-        oni jednym kliknięciem ściągną cały zestaw na swój komputer.</p>
-        
-        <p>Wszystkie teksty książek ze stron Wolne Lektury (w postaci plików html, pdf, txt) dostępne są poza restrykcjami prawa autorskiego i można je swobodnie wykorzystywać bez żadnych warunków.</p>
-
-        <p>Jeśli teksty te są opatrzone dodatkowymi materiałami (przypisy, motywy literackie etc.) które podlegają prawu
-        autorskiemu, to te dodatkowe materiały udostępnione są na licencji Creative Commons Uznanie Autorstwa - Na Tych
-        Samych Warunkach 3.0 PL (<a href="http://creativecommons.org/licenses/by-sa/3.0/">http://creativecommons.org/licenses/by-sa/3.0/</a>).</p>
+        {% chunk "about_us_left" %}
     </div>
-    
     <div class="column-right">
-        <h2>O Fundacji</h2>
-
-        <p>Fundacja Nowoczesna Polska powstała, ponieważ kształcenie dzieci jest kluczem do przyszłości Polski. Jednym z
-        najważniejszych zadań, jakie stoją przed polską edukacją, jest walka z cyfrowym wykluczeniem. Umiejętność
-        korzystania z komputera i internetu w czasach społeczeństwa informacyjnego jest rodzajem elementarza. Ci, którzy
-        go nie znają, skazani są na wegetację na obrzeżach nowoczesnego świata. </p>
-        
-         <p>Dlatego od siedmiu lat pomagamy dzieciom zrozumieć i wykorzystywać zaawansowane technologie. Fundacja
-        Nowoczesna Polska tysiącom dzieci chce dać to, co najcenniejsze: wiedzę i umiejętności pozwalające rozumieć
-        współczesny świat i wykorzystywać możliwości, jakie on oferuje.</p>
-        
-         <p>Fundacja Nowoczesna Polska – poza projektem Wolne Lektury – koordynuje także projekt Wolne Podręczniki,
-        tworzony przez ruch społeczny nauczycieli wolontariuszy, którzy korzystając z Internetu piszą nowe podręczniki
-        dla polskich uczniów. Wolne Podręczniki są publikowane na wolnych licencjach – czyli takich, które zezwalają
-        każdemu na bezpłatne kopiowanie, rozpowszechnianie i aktualizowanie ich bez konieczności pytania o zgodę zespołu
-        autorów. Każdy nauczyciel będzie mógł te podręczniki uzupełniać, rozszerzać i poprawiać zgodnie z własnymi
-        potrzebami i doświadczeniem. Dzięki wolnym licencjom można poważnie obniżyć koszt podręczników wydawanych w
-        tradycyjnej postaci książek drukowanych na papierze, a podręczniki rozpowszechniane w formie elektronicznej będą
-        dostępne za darmo.</p>
-        
-        <h2>O domenie publicznej</h2>
-        
-        <p>W serwisie Wolne Lektury możemy zgodnie z prawem publikować tylko te książki, które należą do domeny
-        publicznej, a więc te, które wyszły już spod działania prawa autorskiego. Domena publiczna to rodzaj skarbca
-        kultury, wspólnego dobra, z którego wszyscy mogą korzystać na równych prawach, bez ograniczeń i opłat. Istnienie
-        domeny publicznej jest gwarantem dostępu do dóbr kultury, ten zaś jest naszym obywatelskim prawem zapisanym w
-        konstytucji.</p>
-        
-         <p>Choć zasadą jest, że po jakimś czasie wszystkie dzieła mają zasilić domenę publiczną, to czas działania
-        polskiego prawa autorskiego został w ciągu ostatnich kilkunastu lat znacznie wydłużony. Jeszcze na początku lat
-        90. było to 25 lat od śmierci autora, potem ten czas wydłużono na 50 lat, dziś jest to już lat 70. To oznacza,
-        że wielu pozycji z ministerialnych list lektur nie będziemy mogli udostępnić jeszcze przez wiele lat. Dopiero w
-        2020 roku opublikujemy utwory Marka Hłaski i Witolda Gombrowicza. Powieści Kuncewiczowej zasilą domenę publiczną
-        w roku 2060, a poezje Miłosza w 2075 roku.</p>
-        
-         <p>Ograniczenia prawa autorskiego odnoszą się także do wydań krytycznych i tłumaczeń. Do 1 stycznia 2012 roku
-        będziemy czekać na "Wielki Testament" Villona i inne utwory tłumaczone przez Boya-Żeleńskiego, a do 2068 roku na
-        „Kubusia Puchatka” Milne'a i inne przekłady Ireny Tuwim. Nie mamy także prawa upubliczniać wstępów i przedmów
-        napisanych przez autorów, którzy zmarli mniej niż 70 lat temu. Z tego właśnie powodu zdarza się czasem, że jakiś
-        utwór znajduje się na Wolnych Lekturach, ale link do odpowiadającej mu pozycji w Cyfrowej Bibliotece Narodowej
-        Polona odsyła do strony, która mówi, że utwór objęty jest ochroną prawa autorskiego. Znaczy to, że choć sam
-        tekst należy do domeny publicznej i dlatego umieszczamy go w Wolnych Lekturach, to jego wydanie krytyczne,
-        którym dysponuje CBN Polona (ze wszystkimi wstępami, przedmowami i komentarzami redaktorów), wciąż jest objęte
-        działaniem prawa autorskiego.</p>
-        
-         <p>O domenę publiczną należy dbać i otaczać ją ochroną. Kultura to misterny gmach, w którym kolejne piętra mogą
-        być budowane tylko na solidnych podstawach wypracowanych przez poprzedników. Kochanowski bezpośrednio czerpał z
-        tradycji antycznej. Mickiewicz twórczość ludową wykorzystał do stworzenia najpiękniejszych polskich wierszy.
-        Każde kolejne pokolenie może sięgać wzrokiem dalej, wypracowywać własny literacki język i trwale wpisywać się w
-        historię literatury tylko dzięki osiągnięciom poprzedników. Dlatego tak ważna jest wolność w udostępnianiu i
-        wykorzystywaniu najważniejszych dzieł polskiej i światowej literatury. Bez domeny publicznej zbudowanie tego
-        wspaniałego gmachu, jakim jest kultura, byłoby niemożliwe.</p>
+        {% chunk "about_us_right" %}
     </div>
 {% endblock %}
-
index edb229a..ebe45fe 100644 (file)
@@ -1,4 +1,5 @@
 {% extends "base.html" %}
+{% load chunks %}
 
 {% block title %}Możesz nam pomóc w WolneLektury.pl{% endblock %}
 
@@ -9,93 +10,9 @@
     </form>
 
     <div class="column-left">
-        <h2>Wolontariat</h2>
-
-        <p>Utwory włączane sukcesywnie do naszej biblioteki staramy się opracowywać jak najdokładniej. Jest to możliwe
-        tylko dzięki współpracującym z nami wolontariuszom.</p>
-        
-        <p>Zapraszamy wszystkie osoby, które chcą współtworzyć szkolną bibliotekę internetową Wolne Lektury.</p>
-        
-        <p>Wszystkim wolontariuszom oferujemy szkolenia i praktykę w zakresie edycji tekstów: redakcji technicznej i
-        merytorycznej. Wolontariusze mogą poznać problemy, ale i możliwości, jakie wiążą się z publikacjami internetowymi.
-        Współorganizują z nami szkolenia i konferencje, pomagają w przygotowaniu wersji tekstów do słuchania (tzw.
-        audiobooków). Wystawiamy umowy i zaświadczenia o tym, kiedy i jakie prace wykonywał wolontariusz na rzecz naszej
-        fundacji. Szkolenia, praktyka edytorska i potwierdzające je zaświadczenia mogą się okazać istotne w procesie
-        podnoszenia kwalifikacji i awansu zawodowego.</p>
-        
-        <h2>Co jest do zrobienia?</h2>
-        
-        <p>Najwięcej pracy mamy przy przygotowaniu lektur do publikacji. Z tekstu, który otrzymujemy z Biblioteki
-        Narodowej, należy usunąć literówki i inne mechaniczne błędy, a następnie opatrzyć tekst przypisami, pamiętając o
-        tym, że nasza oferta skierowana jest przede wszystkim do uczniów, dla których wiele słów i zwrotów będzie brzmiało
-        anachronicznie. Wydania dawniejsze (rygor wyznacza tu prawo autorskie) poddawane są koniecznym uwspółcześnieniom
-        językowym, np. w zakresie ortografii lub fleksji, przy czym pilnujemy, aby nie naruszać artystycznej swoistości
-        tekstu. Ostatnim etapem jest wyszukiwanie motywów i tematów literackich, mające pomóc przejrzeć literaturę "na
-        wskroś". We wszystkich tych pracach wspomagają nas wolontariusze – nauczyciele i studenci – często służąc również
-        radami i uwagami przy podejmowaniu ważnych decyzji.</p>
-        
-        <h2>Jak się do nas zgłosić?</h2>
-        
-        <p>Wszystkie zainteresowane osoby prosimy o przysłanie maila na adres <a href="mail:fundacja@nowoczesnapolska.org.pl">fundacja@nowoczesnapolska.org.pl</a>.</p>
-
-        <p>Zapraszamy także na <a href="http://redmine.nowoczesnapolska.org.pl/projects/wl-publikacje">stronę redakcji Wolnych Lektur</a>, na której znajdują się wszystkie niezbędne informacje o tym, jak włączyć się w prace redakcyjne.</p>
+        {% chunk "help_us_left" %}
     </div>
     <div class="column-right">
-        <h2>Najbardziej zasłużeni wolontariusze</h2>
-
-       <h3>Agatapaszkowska (współpracuje z nami od 15 marca 2008)</h3>
-
-        <p>m.in. opracowywała „W pustyni i w puszczy” Sienkiewicza ; zob. też na naszej stronie „wkład użytkownika”: <a href="http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Agatapaszkowska">http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Agatapaszkowska</a></p>
-
-
-       <h3>AgnieszkaKappa (współpracuje z nami od 16 marca 2008)</h3>
-
-        <p>m.in. brała udział w tworzeniu listy i opisie użycia motywów i tematów literackich; opracowywała teksty Sienkiewicza (Latarnik, Janko Muzykant, Quo vadis); zob. też na naszej stronie „wkład użytkownika”: <a href="http://wiki.wolnepodreczniki.pl/index.php?title=Specjalna:Wk%C5%82ad&amp;limit=500&amp;target=AgnieszkaKappa">http://wiki.wolnepodreczniki.pl/index.php?title=Specjalna:Wk%C5%82ad&amp;limit=500&amp;target=AgnieszkaKappa</a></p>
-
-
-        <h3>Anerys (współpracuje z nami od 5 lipca 2007)</h3>
-
-        <p>m.in. brała udział w tworzeniu listy motywów i tematów literackich, dyskusji o gatunkach literackich, opracowywała Bogurodzicę, „Fraszki” i „Treny” Kochanowskiego; wiersze Słowackiego (Grób Agamemnona), „Świętoszka” Moliere'a, czy poezje Kasprowicza (w tym hymn „Dies Irae”); zob. też na naszej stronie „wkład użytkownika”: <a href="http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Anerys">http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Anerys</a></p>
-
-
-       <h3>EmiliaZdankiewicz (współpracuje z nami od 17 marca 2008)</h3>
-
-        <p>m.in. motywy literackie dyskusja i opisywanie, Słowacki, Kordian; Konopnicka, Nasza szkapa; Mickiewicz, Dziady cz. III; zob. też na naszej stronie „wkład użytkownika”: <a href="http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/EmiliaZdankiewicz">http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/EmiliaZdankiewicz</a></p>
-
-
-       <h3>Ewa_Serafin (współpracuje z nami od 15 marca 2008)</h3>
-
-        <p>m.in. brała udział w tworzeniu listy i opisie użycia motywów i tematów literackich, opracowywała poezje Kasprowicza („Z wichrów i hal”, „Nad przepaściami”, „W ciemności schodzi moja dusza” oraz „Nad Niemnem” Orzeszkowej; zob. też na naszej stronie „wkład użytkownika”: <a href="http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Ewa_Serafi">http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Ewa_Serafi</a>n</p>
-
-
-       <h3>Hanna_Golab (współpracuje z nami od 15 marca 2008)</h3>
-
-        <p>opracowywała „Króla Edypa” Sofoklesa oraz „Dusiołka” Leśmiana; zob. też na naszej stronie „wkład użytkownika”: <a href="http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Hanna_Golab">http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Hanna_Golab</a></p>
-
-
-       <h3>Ingene (współpracuje z nami od 16 lipca 2008)</h3>
-
-        <p>m.in. opracowywała „Siłaczkę” Żeromskiego, „Quo vadis” Sienkiewicza oraz „Treny” Kochanowskiego; zob. też na naszej stronie „wkład użytkownika”: <a href="http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Ingene">http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Ingene</a></p>
-    
-       <h3>Jmyszkowska (współpracuje z nami od 26 marca 2008)</h3>
-
-        <p>m. in. opracowywała „Giaura” Byrona oraz „Quo vadis” Sienkiewicza; zob. też na naszej stronie „wkład użytkownika”: <a href="http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Jmyszkowska">http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Jmyszkowska</a></p>
-
-
-        <h3>Marysiabailey (współpracuje z nami od 1 października 2007)</h3>
-
-        <p>m.in. brała udział w tworzeniu listy motywów i tematów literackich oraz opisywaniu ich użycia; opracowywała „Chłopów” Reymonta, „Lalkę” Prusa, „Nie-Boską komedię” Krasińskiego, „Bajki” i „Satyry” Krasickiego, „Antygonę” Sofoklesa oraz utwory Kochanowskiego, Morsztyna, Mickiewicza, Kasprowicza, Goethego, Oppmana, Kasprowicza; zob. też na naszej stronie „wkład użytkownika”: <a href="http://wiki.wolnepodreczniki.pl/index.php?title=Specjalna:Wk%C5%82ad&amp;limit=500&amp;target=Marysiabailey">http://wiki.wolnepodreczniki.pl/index.php?title=Specjalna:Wk%C5%82ad&amp;limit=500&amp;target=Marysiabailey</a>; ponadto przygotowywała i prowadziła szkolenie dla wolontariuszy 15 marca 2008; zajmowała się proofreadingiem, a obecnie kieruje pracami nad audiobookami.</p>
-
-
-        <h3>Olga_Wojtczak (współpracuje z nami od 21 października 2008)</h3>
-
-        <p>m.in. opracowywała powieści Sienkiewicza (Trylogia), Reymonta, Żeromskiego, dramaty Shakespeare'a; zob. też na naszej stronie „wkład użytkownika”: <a href="http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Olga_Wojtczak">http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Olga_Wojtczak</a></p>
-
-
-        <h3>Renataml (współpracuje z nami od 30 czerwca 2007)</h3>
-
-        <p>brała udział w dyskusji na temat listy motywów, wspomagała nas radami jako doświadczona nauczycielka, edytowała „Lalkę” Prusa, „Balladynę” Słowackiego, „Siłaczkę” Żeromskiego.
-
-        <a href="http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Renataml">http://wiki.wolnepodreczniki.pl/Specjalna:Wk%C5%82ad/Renataml</a></p>
+        {% chunk "help_us_right" %}
     </div>
 {% endblock %}
index b835671..e6253d7 100644 (file)
@@ -1,4 +1,5 @@
 {% extends "base.html" %}
+{% load chunks %}
 
 {% block title %}Wolontariat dla wiedzy w WolneLektury.pl{% endblock %}
 
     </form>
 
     <div id="volontariat" class="column-left">
-    <h2>Wolontariat</h2>
-       <p>
-               Biogramy pisarzy oraz definicje epok i gatunków literackich w
-               bibliotece internetowej Wolne Lektury napisali uczniowie
-               czterech szkół podczas warsztatów „Wolontariat dla wiedzy”.
-       </p>
-
-       <p>
-               Uczniowie pracowali wspólnie pod merytorycznym nadzorem
-               nauczycieli i specjalistów – literaturoznawców na
-               <a href="http://wolnepodreczniki.pl/wolontariat/">
-                       platformie internetowej wiki</a>
-               przygotowanej przez zespół
-               <a href="http://2ia.pl/">2ia</a>. Praca nad notami była jednocześnie nauką wykorzystywania
-               komputerów i internetu do wyszukiwania informacji, a także
-               weryfikowania ich wiarygodności.
-       </p>
-
-       <p>
-               Projekt "Wolontariat dla wiedzy" został zrealizowany dzięki
-               wsparciu
-               <a href="http://www.menis.gov.pl/">
-                       Ministerstwa Edukacji Narodowej</a>. Nagrody dla uczniów ufundowali
-               <a href="http://www.nk.com.pl/engine/index.php?page=glowna">
-                       Wydawnictwo Nasza Księgarnia</a>
-               i
-               <a href="http://helion.pl/">Wydawnictwo Helion</a>. Noty zweryfikowano w serwisie
-               <a href="http://www.plagiat.pl/webplagiat/main.action">
-                       Plagiat.pl</a>.
-       </p>
-
-       <p>
-               <a href="/static/wolontariat.pdf">Raport z realizacji projektu „Wolontariat dla wiedzy"</a>.
-       </p>
-       <p>
-       <img src="/static/img/wolontariat/okladka.jpg" style='margin: 10px' />
-       <img src="/static/img/wolontariat/01.jpg" style='margin: 10px' />
-       <img src="/static/img/wolontariat/02.jpg" style='margin: 10px' />
-    <img src="/static/img/wolontariat/03.jpg" style='margin: 10px' />
-    <img src="/static/img/wolontariat/04.jpg" style='margin: 10px' />
-       </p>
-       
+        {% chunk "voluntary_services_left" %}
     </div>
-    
-    
     <div class="column-right">
-       <h2>Autorzy</h2>
-
-       <ol>
-               <li>
-                       <p>
-                               Gimnazjum nr 40 z Oddziałami Integracyjnymi w Zespole
-                               Szkół nr 69 im. Armii Krajowej Grupy Bojowej „KRYBAR”,
-                               ul. Drewniana 8, 00-345 Warszawa; klasa druga pod opieką
-                               Anny Budziarek-Friedrich:
-                       </p>
-
-                       <ul>
-                               <li>Burdon Filip;</li>
-                               <li>Dębski Bartek;</li>
-                               <li>Jackowicz Kamil;</li>
-                               <li>Kurek Paweł;</li>
-                               <li>Makles Bartosz;</li>
-                               <li>Markiewicz Jeremiasz;</li>
-                               <li>Migdał Katarzyna;</li>
-                               <li>Mioduszewski Michał;</li>
-                               <li>Pfeiffer Ida;</li>
-                               <li>Płaskowicka Karolina;</li>
-                               <li>Sailer Ewa.</li>
-                       </ul>
-               </li>
-
-               <li>
-                       <p>
-                               XXXIII Liceum Ogólnokształcące im. Mikołaja Kopernika,
-                               ul. Bema 76, 01-225 Warszawa; klasa pierwsza o profilu
-                               biologiczno-chemicznym pod opieką Elżbiety Konkowskiej:
-                       </p>
-
-                       <ul>
-                               <li>Chwil Bartłomiej;</li>
-                               <li>Czarnecka Natalia;</li>
-                               <li>Gawrońska Iga;</li>
-                               <li>Grabarczyk Marta;</li>
-                               <li>Jastrząb Katarzyna;</li>
-                               <li>Krawczak Olga;</li>
-                               <li>Krawczyk Marianna;</li>
-                               <li>Kur Natalia;</li>
-                               <li>Kwiatek Marta;</li>
-                               <li>Laśkiewicz Joanna;</li>
-                               <li>Machczyńska Daria;</li>
-                               <li>Miecznikowska Izabela;</li>
-                               <li>Moczulska Karolina;</li>
-                               <li>Mościcka Aneta;</li>
-                               <li>Narloch Sabina;</li>
-                               <li>Przybysz Paweł;</li>
-                               <li>Puchta Marek;</li>
-                               <li>Ryska Cezary;</li>
-                               <li>Sandomierski Bartłomiej;</li>
-                               <li>Sławiński Tomasz;</li>
-                               <li>Słowik Olga;</li>
-                               <li>Starzycka Katarzyna;</li>
-                               <li>Strzelczak Karolina;</li>
-                               <li>Szafran Danuta;</li>
-                               <li>Szmigielska Magdalena;</li>
-                               <li>Szulkowska Alicja;</li>
-                               <li>Ślusarczyk Anna;</li>
-                               <li>Tytkowska Anna.</li>
-                       </ul>
-                       <li>
-                               <p>
-                                       Autorskie Niepubliczne Liceum Ogólnokształcące nr
-                                       42, ul. Iwicka 47 B, 00-735 Warszawa; klasa pierwsza
-                                       o profilu ogólnym pod opieką Michała Friedricha:
-                               </p>
-
-                               <ul>
-                                       <li>Baraniecka Marta;</li>
-                                       <li>Gołaszewska Ewa;</li>
-                                       <li>Kwiatkowski Michał;</li>
-                                       <li>Machnikowska Monika;</li>
-                                       <li>Pietrzak Bartosz;</li>
-                                       <li>Przespolewski Przemysław;</li>
-                                       <li>Rosińska Zuzanna;</li>
-                                       <li>Sibiga Magdalena.</li>
-                               </ul>
-                       </li>
-                       <li>
-                               <p>
-                                       LXIV Liceum Ogólnokształcące im. St. I. Witkiewicza,
-                                       ul. Elbląska 51, 01-737 Warszawa; klasa pierwsza o
-                                       profilu ogólnym pod opieką Daniela Zycha:
-                               </p>
-
-                               <ul>
-                                       <li>Andrzejczak Kamil;</li>
-                                       <li>Czubaj Konrad;</li>
-                                       <li>Drągowska Katarzyna;</li>
-                                       <li>Gajewska Magdalena;</li>
-                                       <li>Głowacki Jan;</li>
-                                       <li>Grad Paweł;</li>
-                                       <li>Hnatowski Bartek;</li>
-                                       <li>Karwowski Marcin;</li>
-                                       <li>Kłos Aneta;</li>
-                                       <li>Kozieł Barbara;</li>
-                                       <li>Kozłowska Anna;</li>
-                                       <li>Krug Pamela;</li>
-                                       <li>Krzosek Jakub;</li>
-                                       <li>Lubaś Michał;</li>
-                                       <li>Masewicz Natalia;</li>
-                                       <li>Mastalerz Agnieszka;</li>
-                                       <li>Modelska Marta;</li>
-                                       <li>Nowak Aleksandra;</li>
-                                       <li>Pabian Agnieszka;</li>
-                                       <li>Paszkowska Aleksandra;</li>
-                                       <li>Pielat Zofia;</li>
-                                       <li>Poniecka Agnieszka;</li>
-                                       <li>Pytlak Urszula;</li>
-                                       <li>Rosa Karolina;</li>
-                                       <li>Smyczyńska Kamila;</li>
-                                       <li>Stolińska Barbara;</li>
-                                       <li>Szymańska Katarzyna;</li>
-                                       <li>Ścibior Ewa;</li>
-                                       <li>Witczak Magda;</li>
-                                       <li>Witkowska Justyna;</li>
-                                       <li>Wyrzykowska Jowita;</li>
-                                       <li>Ziółkowska Adrianna.</li>
-                               </ul>
-                       </li>
-         </li>
-         </ol>
-         </div>
+        {% chunk "voluntary_services_right" %}
+    </div>
 {% endblock %}
 
diff --git a/wolnelektury/wolnelektury.fcgi b/wolnelektury/wolnelektury.fcgi
deleted file mode 100644 (file)
index 5115758..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env python
-import os
-from os.path import abspath, dirname, join
-import sys
-
-# Redirect sys.stdout to sys.stderr for bad libraries like geopy that use
-# print statements for optional import exceptions.
-sys.stdout = sys.stderr
-
-# Add apps and lib directories to PYTHONPATH
-sys.path.insert(0, abspath(join(dirname(__file__), '../apps')))
-sys.path.insert(0, abspath(join(dirname(__file__), '../lib')))
-
-# Emulate manage.py path hacking.
-sys.path.insert(0, abspath(join(dirname(__file__), "../")))
-sys.path.insert(0, abspath(join(dirname(__file__), ".")))
-
-# Run Django
-os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
-
-from django.core.servers.fastcgi import runfastcgi
-runfastcgi(method='threaded', daemonize='false')
-
diff --git a/wolnelektury/wolnelektury.wsgi b/wolnelektury/wolnelektury.wsgi
deleted file mode 100644 (file)
index acafede..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env python
-import os
-from os.path import abspath, dirname, join
-import sys
-
-# Redirect sys.stdout to sys.stderr for bad libraries like geopy that use
-# print statements for optional import exceptions.
-sys.stdout = sys.stderr
-
-# Add apps and lib directories to PYTHONPATH
-sys.path.insert(0, abspath(join(dirname(__file__), '../apps')))
-sys.path.insert(0, abspath(join(dirname(__file__), '../lib')))
-
-# Emulate manage.py path hacking.
-sys.path.insert(0, abspath(join(dirname(__file__), "../")))
-sys.path.insert(0, abspath(join(dirname(__file__), ".")))
-
-# Run Django
-os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
-
-from django.core.handlers.wsgi import WSGIHandler
-application = WSGIHandler()
-