Rearrange source.
authorRadek Czajka <rczajka@rczajka.pl>
Wed, 3 Apr 2019 10:37:47 +0000 (12:37 +0200)
committerRadek Czajka <rczajka@rczajka.pl>
Wed, 3 Apr 2019 10:48:51 +0000 (12:48 +0200)
123 files changed:
Makefile
apps/edition1/__init__.py [deleted file]
apps/edition1/static/edition1/bg.png [deleted file]
apps/edition1/static/edition1/style.css [deleted file]
apps/edition1/templates/edition1/base.html [deleted file]
apps/edition1/templates/edition1/home.html [deleted file]
apps/edition1/templates/edition1/more.html [deleted file]
apps/edition1/templates/edition1/rules.html [deleted file]
apps/edition1/templates/edition1/technical.html [deleted file]
apps/edition1/urls.py [deleted file]
apps/edition1/views.py [deleted file]
apps/edition2/__init__.py [deleted file]
apps/edition2/static/edition2/style.css [deleted file]
apps/edition2/templates/edition2/base.html [deleted file]
apps/edition2/templates/edition2/home.html [deleted file]
apps/edition2/templates/edition2/more.html [deleted file]
apps/edition2/templates/edition2/rules.html [deleted file]
apps/edition2/templates/edition2/technical.html [deleted file]
apps/edition2/urls.py [deleted file]
apps/poetry/__init__.py [deleted file]
apps/poetry/migrations/0001_initial.py [deleted file]
apps/poetry/migrations/__init__.py [deleted file]
apps/poetry/models.py [deleted file]
apps/poetry/static/poetry/poem.css [deleted file]
apps/poetry/templates/poetry/contest.html [deleted file]
apps/poetry/templates/poetry/main.html [deleted file]
apps/poetry/templates/poetry/poem.html [deleted file]
apps/poetry/templates/poetry/poet.html [deleted file]
apps/poetry/urls.py [deleted file]
apps/poetry/utils.py [deleted file]
apps/poetry/views.py [deleted file]
manage.py [deleted file]
src/core/__init__.py [new file with mode: 0644]
src/core/localsettings.py.template [new file with mode: 0644]
src/core/settings.py [new file with mode: 0644]
src/core/static/img/cc.png [new file with mode: 0644]
src/core/static/img/di.png [new file with mode: 0644]
src/core/static/img/favicon.ico [new file with mode: 0644]
src/core/static/img/fnp.png [new file with mode: 0644]
src/core/static/img/fnp_black.png [new file with mode: 0644]
src/core/static/img/koed.png [new file with mode: 0644]
src/core/static/img/lempl.png [new file with mode: 0644]
src/core/static/img/social/bigfacebook.png [new file with mode: 0644]
src/core/static/img/social/biggoogle.png [new file with mode: 0644]
src/core/static/img/social/bignk.png [new file with mode: 0644]
src/core/static/img/social/bigtwitter.png [new file with mode: 0644]
src/core/static/img/social/facebook.png [new file with mode: 0644]
src/core/static/img/social/google.png [new file with mode: 0644]
src/core/static/img/social/nk.png [new file with mode: 0644]
src/core/static/img/social/twitter.png [new file with mode: 0644]
src/core/static/img/turniej-maly.png [new file with mode: 0644]
src/core/static/img/turniej.png [new file with mode: 0644]
src/core/static/img/wl.png [new file with mode: 0644]
src/core/static/img/wl_black.png [new file with mode: 0644]
src/core/static/js/jquery.countdown-pl.js [new file with mode: 0644]
src/core/static/js/jquery.countdown.css [new file with mode: 0644]
src/core/static/js/jquery.countdown.min.js [new file with mode: 0644]
src/core/templates/404.html [new file with mode: 0644]
src/core/templates/500.html [new file with mode: 0644]
src/core/templates/base.html [new file with mode: 0644]
src/core/urls.py [new file with mode: 0644]
src/core/wsgi.py [new file with mode: 0644]
src/edition1/__init__.py [new file with mode: 0644]
src/edition1/static/edition1/bg.png [new file with mode: 0644]
src/edition1/static/edition1/style.css [new file with mode: 0644]
src/edition1/templates/edition1/base.html [new file with mode: 0644]
src/edition1/templates/edition1/home.html [new file with mode: 0644]
src/edition1/templates/edition1/more.html [new file with mode: 0644]
src/edition1/templates/edition1/rules.html [new file with mode: 0644]
src/edition1/templates/edition1/technical.html [new file with mode: 0644]
src/edition1/urls.py [new file with mode: 0644]
src/edition1/views.py [new file with mode: 0644]
src/edition2/__init__.py [new file with mode: 0644]
src/edition2/static/edition2/style.css [new file with mode: 0644]
src/edition2/templates/edition2/base.html [new file with mode: 0644]
src/edition2/templates/edition2/home.html [new file with mode: 0644]
src/edition2/templates/edition2/more.html [new file with mode: 0644]
src/edition2/templates/edition2/rules.html [new file with mode: 0644]
src/edition2/templates/edition2/technical.html [new file with mode: 0644]
src/edition2/urls.py [new file with mode: 0755]
src/manage.py [new file with mode: 0755]
src/poetry/__init__.py [new file with mode: 0644]
src/poetry/migrations/0001_initial.py [new file with mode: 0644]
src/poetry/migrations/__init__.py [new file with mode: 0644]
src/poetry/models.py [new file with mode: 0644]
src/poetry/static/poetry/poem.css [new file with mode: 0644]
src/poetry/templates/poetry/contest.html [new file with mode: 0644]
src/poetry/templates/poetry/main.html [new file with mode: 0644]
src/poetry/templates/poetry/poem.html [new file with mode: 0644]
src/poetry/templates/poetry/poet.html [new file with mode: 0644]
src/poetry/urls.py [new file with mode: 0644]
src/poetry/utils.py [new file with mode: 0644]
src/poetry/views.py [new file with mode: 0644]
turniej/__init__.py [deleted file]
turniej/localsettings.py.template [deleted file]
turniej/settings.py [deleted file]
turniej/static/img/cc.png [deleted file]
turniej/static/img/di.png [deleted file]
turniej/static/img/favicon.ico [deleted file]
turniej/static/img/fnp.png [deleted file]
turniej/static/img/fnp_black.png [deleted file]
turniej/static/img/koed.png [deleted file]
turniej/static/img/lempl.png [deleted file]
turniej/static/img/social/bigfacebook.png [deleted file]
turniej/static/img/social/biggoogle.png [deleted file]
turniej/static/img/social/bignk.png [deleted file]
turniej/static/img/social/bigtwitter.png [deleted file]
turniej/static/img/social/facebook.png [deleted file]
turniej/static/img/social/google.png [deleted file]
turniej/static/img/social/nk.png [deleted file]
turniej/static/img/social/twitter.png [deleted file]
turniej/static/img/turniej-maly.png [deleted file]
turniej/static/img/turniej.png [deleted file]
turniej/static/img/wl.png [deleted file]
turniej/static/img/wl_black.png [deleted file]
turniej/static/js/jquery.countdown-pl.js [deleted file]
turniej/static/js/jquery.countdown.css [deleted file]
turniej/static/js/jquery.countdown.min.js [deleted file]
turniej/templates/404.html [deleted file]
turniej/templates/500.html [deleted file]
turniej/templates/base.html [deleted file]
turniej/urls.py [deleted file]
turniej/wsgi.py [deleted file]

index 434b784..ea5beb0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 .PHONY: deploy
 
 
-deploy: turniej/localsettings.py
+deploy: src/core/localsettings.py
        pip install -r requirements.txt
-       ./manage.py migrate --noinput
-       ./manage.py collectstatic --noinput
+       src/manage.py migrate --noinput
+       src/manage.py collectstatic --noinput
diff --git a/apps/edition1/__init__.py b/apps/edition1/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/apps/edition1/static/edition1/bg.png b/apps/edition1/static/edition1/bg.png
deleted file mode 100644 (file)
index be7d63a..0000000
Binary files a/apps/edition1/static/edition1/bg.png and /dev/null differ
diff --git a/apps/edition1/static/edition1/style.css b/apps/edition1/static/edition1/style.css
deleted file mode 100644 (file)
index 0394bce..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-html {
-    margin: 0;
-}
-
-body {
-    margin: 0;
-    padding: 0;
-
-    font-size: .75em;
-    font-family: Verdana,Arial,Helvetica,sans-serif;
-}
-
-#body-wrapper {
-    padding: 1em;
-    color: #2F4110;
-    background: url("/static/edition1/bg.png") repeat-x scroll 0 0 #FFFFFF;
-}
-#body {
-    max-width: 900px;
-    margin:auto;
-}
-#new-edition {
-    background: #191919;
-    color: #989898;
-    text-align: center;
-    padding: .8em 0;
-}
-#new-edition a {
-    color: white;
-}
-
-
-
-#content {
-    width: 420px;
-    margin-top: 2em;
-}
-
-
-
-h1 {
-    font: bold 2.2em Arial,sans-serif;
-    padding-top: .7em;
-    margin-bottom: .2em;
-}
-
-
-h2 {
-    font-size: 1.1em;
-    margin:0;
-}
-
-a {
-    color: #295158;
-    text-decoration: none;
-}
-a:hover {
-    border-bottom: 1px dotted;
-}
-
-
-.plain li {
-    list-style: none;
-}
-
-li {
-    margin: 1em;
-}
-
-#termin-wrap {
-    margin-top: 3em;
-}
-
-
-.clr {
-    clear: both;
-}
-
-#footer {
-    border-top: 1px solid #ddd;
-    margin-top: 7em;
-    clear: both;
-    
-}
-#footer img {
-    margin: 30px 13px;
-    vertical-align: middle;
-}
-#footer a:hover {
-    border: none;
-}
-
-
-blockquote {
-    font-size: .9em;
-    font-style: italic;
-    margin-left: 350px;
-    margin-right: 50px;
-    margin-bottom: 4em;
-}
-blockquote p {
-    margin: .5em 0 0 0;
-}
-
-.more {
-    text-align: right;
-}
-
-.uwaga {
-       border: 1px solid #ddd;
-       padding: 1em;
-       background-color: #ff8;
-}
-
-.social {
-    margin-top: 10px;
-    margin-bottom: 10px;
-}
-
-
-.tworz {
-    font-size: 1.5em;
-    padding: .8em;
-    background: #555;
-    color: white;
-    margin: 1em auto;
-    display: block;
-    width: 10em;
-    text-align: center;
-    border: 1px solid #000;
-    border-radius: 1em;
-}
-.tworz:hover {
-    border: 1px solid #000;
-    background: #666;
-}
-
-.last {
-    list-style: none;
-    padding: 0;
-}
-.last li {
-    margin-left: 0;
-}
-
-.poet-list {
-    padding: 0;
-    margin: 1em 0;
-}
-.poet-list li {
-    float: left;
-    width: 30%;
-    list-style: none;
-    padding: .8em 0;
-    border: 1px solid #888;
-    background: #eee;
-    border-radius: 1em;
-    text-align: center;
-}
-.poet-list li:before {
-  content: "» ";
-}
-
-.poet-description {
-    max-width: 60em;
-}
-
diff --git a/apps/edition1/templates/edition1/base.html b/apps/edition1/templates/edition1/base.html
deleted file mode 100644 (file)
index b851855..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Turniej Elektrybałtów{% block "extratitle" %}{% endblock %}</title>
-    <meta charset="utf-8" />
-
-    <link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
-    <style type="text/css">
-    @import "{{ STATIC_URL }}edition1/style.css";
-    </style>
-</head>
-
-<body>
-
-<div id="fb-root"></div>
-<script>(function(d, s, id) {
-  var js, fjs = d.getElementsByTagName(s)[0];
-  if (d.getElementById(id)) {return;}
-  js = d.createElement(s); js.id = id;
-  js.src = "//connect.facebook.net/pl_PL/all.js#xfbml=1";
-  fjs.parentNode.insertBefore(js, fjs);
-}(document, 'script', 'facebook-jssdk'));</script>
-<script src="http://0.s-nk.pl/script/nk_widgets/nk_widget_fajne_embed"></script>
-
-<div id="body-wrapper">
-<div id="body">
-{% block "body" %}{% endblock %}
-</div>
-</div>
-
-<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
-  {lang: 'pl'}
-</script>
-{% load piwik_tags %}
-{% tracking_code %}
-</body>
-
-
-</html>
diff --git a/apps/edition1/templates/edition1/home.html b/apps/edition1/templates/edition1/home.html
deleted file mode 100644 (file)
index b2159ae..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-<div style="float:right">
-<img src="{{ STATIC_URL }}img/turniej.png" style='float:right; margin-bottom: 2em;' alt="logo Turnieju Elektrybałtów: frontalny widok maszynki do mielenia mięsa" />
-<h2>Ostatnie wiersze:</h2>
-<ul class="last">
-{% for poem in last %}
-    <li><a href="{{ poem.get_absolute_url }}">{{ poem.poet.name}}, {{ poem.pretty_title }}</a><br/>{{ poem.text|truncatewords:5 }}</li>
-{% endfor %}    
-</ul>
-
-</div>
-
-<div id="content">
-<h1>Turniej Elektrybałtów</h1>
-<h2>Konkurs automatycznej poezji</h2>
-
-<div class="social">
-<span style="position:relative; top: -5px;" >
-    <div class="fb-like" data-href="http://turniej.wolnelektury.pl" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
-</span>
-<g:plusone annotation="bubble" href="http://turniej.wolnelektury.pl"></g:plusone>
-<script>
-  new nk_fajne({
-    url: "http://turniej.wolnelektury.pl",
-    type: 4,
-    color: 0,
-    title: "Turniej Elektrybałtów",
-    image: "http://turniej.wolnelektury.pl/turniej.png",
-    description: "Turniej Elektrybałtów - otwarty konkurs na najlepszego automatycznego poetę."
-  });
-</script>
-</div>
-
-
-<div class="uwaga">
-<p>Konkurs został rozstrzygnięty! Zakończenie odbyło się podczas <a href='http://domenapubliczna.org'>Dnia Domeny Publicznej 2012</a>.</p>
-
-<p>Zwycięzcą został <a href='/poezja/centonista/'><strong>Centonista</strong></a>. Gratulujemy!</p>
-
-<p>Dodatkowo, <a href='/poezja/ala/'>Ała!</a> otrzymał wyróżnienie.</p>
-</div>
-
-<p>Znacie <a href="http://www.wolnelektury.pl/lesmianator/">Leśmianatora</a>?
-To niewielki skrypt miksujący na życzenie wiersze z
-<a href="http://www.wolnelektury.pl">Wolnych Lektur</a>.
-Powstał jako żart, a niechcący
-<a href="http://www.ha.art.pl/felietony/1515-mariusz-pisarski-piekit-siezyca-lesmianator.html">
-„odciął się od dosłownie rozumianego dziedzictwa dadaizmu i surrealizmu”</a>.
-Idziemy dalej – ogłaszamy <strong>otwarty konkurs na najlepszego automatycznego poetę</strong>!</p>
-
-<p>Konkurs wystartował 12 września 2011 roku – z okazji <strong>90 rocznicy urodzin
-Stanisława Lema</strong>. Termin nadsyłania prac upłynął
-10 listopada 2011 roku.
-Prezentujemy nadesłane prace w akcji.
-Kliknij przycisk, a jeden
-z <a href="{% url 'poetry_main' %}">programów-uczestników</a> napisze dla Ciebie wiersz:</p>
-
-<a  style="margin: 1em auto;" class="tworz" href="{% url 'poetry_new' %}">Twórz-że się!</a>
-
-<p><strong>Zobacz <a href="{% url 'poetry_main' %}">wszystkie programy</a>.</strong> Ich kod źródłowy
-<a href="https://github.com/turniej">jest dostępny</a> na wolnej licencji
-– nic więc nie stoi na przeszkodzie, by rozwijać je dalej.</p>
-
-<p>Spośród wygenerowanych przz nas propozycji autorzy programów wybrali po trzy utwory.
-<a href="{% url 'poetry_contest' %}">Zobacz wiersze, które wystartowały w konkursie.</a></p>
-
-<p>Do zabawy zapraszamy wszystkich – i tych, którzy świetnie programują, i tych, którzy
-programować dopiero się uczą. Tych, którzy nie rozstają się z tomikiem
-wierszy, i tych, którzy na ten widok dostają gęsiej skórki. Chcemy wybrać
-program, który będzie w najciekawszy i najbardziej twórczy sposób miksował
-dostępną w Wolnych Lekturach literaturę. W tej konkurencji liczy się przede
-wszystkim wyobraźnia, pomysł i chęć do twórczej zabawy.</p>
-
-<p>Więcej informacji:</p>
-
-<ul class='plain'>
-    <li><a href='wiecej/'>Przebieg konkursu</a> – czyli jakie będą kolejne etapy
-    i co jest nagrodą?</li>
-
-    <li><a href='technikalia/'>Technikalia</a> – czyli co i jak trzeba zrobić,
-    żeby wziąć udział.</li>
-
-    <li><a href='regulamin/'>Regulamin</a> – czyli trochę koniecznych formalności.</li>
-</ul>
-
-<p>Wszelkiego rodzaju pytania i wątpliwości proszę kierować na adres
-<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;">&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;</a></p>
-
-<div class='clr'></div>
-</div>
-
-
-<div id="footer">
-<a target='_blank' href='http://nowoczesnapolska.org.pl'><img src='{{ STATIC_URL }}img/fnp.png' alt='Fundacja Nowoczesna Polska' title='Fundacja Nowoczesna Polska' /></a>
-<a target='_blank' href='http://www.wolnelektury.pl'><img src='{{ STATIC_URL }}img/wl.png' alt='Wolne Lektury' title='Wolne Lektury' /></a>
-<a target='_blank' href='http://koed.org.pl'><img src='{{ STATIC_URL }}img/koed.png' alt='Koalicja Otwartej Edukacji' title='Koalicja Otwartej Edukacji' /></a>
-<a target='_blank' href='http://centrumcyfrowe.pl'><img src='{{ STATIC_URL }}img/cc.png' alt='Centrum Cyfrowe' title='Centrum Cyfrowe' /></a>
-<a target='_blank' href='http://di.com.pl'><img src='{{ STATIC_URL }}img/di.png' alt='Dziennik Internautów' title='Dziennik Internautów' /></a>
-<a target='_blank' href='http://solaris.lem.pl'><img src='{{ STATIC_URL }}img/lempl.png' alt='Lem.pl' title='Lem.pl' /></a>
-
-</div>
-
-
-{% endblock %}
diff --git a/apps/edition1/templates/edition1/more.html b/apps/edition1/templates/edition1/more.html
deleted file mode 100644 (file)
index 1a2ca05..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-<h1>
-<a href='/'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
-Turniej Elektrybałtów</h1>
-<h2>
-Konkurs automatycznej poezji</h2>
-
-<blockquote>
-    <p>Gdy wskaźniki amplifikacyjne pokazały, że moc liryczna dochodzi
-    do maksimum, Trurl nieznacznie tylko drżącą ręką przerzucił wielki
-    wyłącznik i niemal natychmiast głosem lekko ochrypłym, lecz emanującym
-    dziwnie sugestywnym czarem, maszyna rzekła:</p>
-
-    <p>– Chrzęskrzyboczek pacionkociewiczarokrzysztofoniczmy.</p>
-    <p>– Czy to już wszystko? – spytał po dłuższej chwili niezwykle uprzejmy
-    Klapaucjusz.</p>
-    <p>(Stanisław Lem, „Cyberiada”, „Wyprawa pierwsza A, czyli Elektrybałt Trurla”)</p>
-</blockquote>
-
-
-
-<p>Konkurs startuje 12 września 2011 roku – z okazji <strong>90 rocznicy urodzin
-Stanisława Lema</strong>. Termin nadsyłania prac upływa <del>z końcem października</del> <ins>10 listopada</ins> 2011 roku.
-Powinno być dość czasu na dopracowanie swoich pomysłów.</p>
-
-<p>Konkurs będzie wyglądał następująco:</p>
-
-<ul>
-    <li>Do <del>końca października</del> <ins>10 listopada</ins> czekamy na zgłoszenia w postaci programów.
-    Warunkiem dopuszczalności jest udostępnienie kodu źródłowego na wolnej
-    licencji <a href="http://www.gnu.org/licenses/agpl.html">GNU AGPL</a>
-    (<a href="http://www.gnu.org/licenses/gpl-howto.pl.html">jak to zrobić?)</a>.
-    Szerzej o tym, czym powinno być złoszenie –
-    w dziale <a href='../technikalia/'>Technikalia</a>.</li>
-
-    <li>Użycie wolnej licencji nie oznacza, że kod źródłowy musi być
-    od razu publicznie dostępny. Programy zostaną przez nas
-    upublicznione – ale dopiero po upłynięciu terminu nadsyłania zgłoszeń.
-    Uczestnik może oczywiście samodzielnie upublicznić swoje zgłoszenie
-    wcześniej – odradzamy to jednak ze względu na komplikacje w przypadku
-    plagiatu.</li>
-
-    <li>Po uruchomieniu nadesłanych przez uczestników programów dla każdego
-    uczestnika wygenerujemy <strong>20</strong> wierszy, które odeślemy autorowi
-    programu. Wybierze on <strong>3</strong> z nich, które następnie zostaną
-    poddane ocenie jury. W składzie jury znajdą się zarówno osoby związane
-    z programowaniem, jak i przedstawiciele świata kultury.</li>
-
-    <li>Główną nagrodą jest 16-tomowa kolekcja książek Stanisława Lema.
-    W ramach dodatkowej nagrody podczas zakończenia konkursu
-    odbędzie się próba odczytania zwycięskich wierszy na głos.</li>
-
-</ul>
-
-<p>Programy biorące udział w konkursie zostaną też uruchomione
-<a href="http://turniej.wolnelektury.pl">na stronie Turnieju</a> –
-internauci będą więc mieli możliwość samodzielnego „wyklikania” sobie własnego
-wiersza przy użyciu każdego z nich.</p>
-
-<p class='more'><a href="..">Powrót do strony głównej</a></p>
-
-{% endblock %}
diff --git a/apps/edition1/templates/edition1/rules.html b/apps/edition1/templates/edition1/rules.html
deleted file mode 100644 (file)
index 00187cc..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-
-<h1>
-<a href='..'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
-Turniej Elektrybałtów</h1>
-<h2>Konkurs automatycznej poezji</h2>
-
-<blockquote>
-    <p>Ustaliwszy, w czym rzecz, zwierzchność żeglugi kosmicznej zwróciła się
-    oficjalnie do Trurla z żądaniem natychmiastowej likwidacji należącego doń
-    urządzenia, które zakłócało liryką spokój publiczny i zagrażało zdrowiu
-    pasażerów.</p>
-
-    <p>(Stanisław Lem, „Cyberiada”, „Wyprawa pierwsza A, czyli Elektrybałt Trurla”)</p>
-</blockquote>
-
-
-
-<h3>Regulamin konkursu</h3>
-
-
-
-
-<ul>
-    <li>Organizatorem konkursu jest fundacja Nowoczesna Polska. </li>
-
-    <li>Przedmiotem konkursu jest program komputerowy tworzący remiksy literackie
-    na podstawie utworów znajdujących się w bilbiotece internetowej Wolne Lektury.
-    Program biorący udział w konkursie musi być udostępniony na wolnej
-    licencji <a href="http://www.gnu.org/licenses/agpl.html">GNU AGPL</a>
-    (<a href="http://www.gnu.org/licenses/gpl-howto.pl.html">jak to zrobić?)</a>.</li>
-
-    <li>Konkurs trwa od 12 września do <del>31 października</del> <ins>10 listopada</ins> 2011 roku.
-    Konkurs ma charakter otwarty. Aby wziąć w nim udział udział,
-    należy wysłać gotowy program na adres
-    <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;">&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;</a>
-
-    z klauzulą: 
-    <cite>Zgłaszam się do konkursu „Turniej Elektrybałtów” i oświadczam, że
-    znam i akceptuję jego regulamin</cite>.</li>
-
-    <li>Nagrodą główną jest 16-tomowa kolekcja dzieł Stanisława Lema. Nie ma
-    możliwości zamiany nagrody na jej równowartość pieniężną.</li>
-
-    <li>Organizator może odwołać konkurs w każdym czasie, bez podawania
-    przyczyny. W takim przypadku uczestnikom konkursu nie przysługuje żadna
-    rekompensata. Uczestnicy zgłaszając swój udział w konkursie automatycznie
-    wyrażają zgodę na publikację ich twórczości w internecie oraz wyrażają
-    zgodę na wykorzystanie wizerunku w materiałach promocyjnych konkursu
-    oraz materiałach promocyjnych Fundacji Nowoczesna Polska.</li>
-
-    <li>Organizator zastrzega sobie prawo do odrzucenia zgłoszenia programu,
-    którego działanie może zagrażać stabilności, responsywności albo bezpieczeństwu
-    serwera, a także takich, których poprawne uruchomienie okaże się niemożliwe
-    lub poważnie utrudnione.</li>
-
-    <li>Organizator konkursu nie ponosi odpowiedzialności za wszelkie
-    roszczenia osób trzecich wynikające z tytułu wykorzystania materiałów
-    zgłoszonych przez uczestników konkursu jako własnych. Prace naruszające
-    prawa autorskie będą dyskwalifikowane.</li>
-
-    <li>Organizator zatrzega sobie prawo wprowadzenia zmian w regulaminie
-    konkursu.</li>
-</ul>
-
-
-
-
-<p class='more'><a href="..">Powrót do strony głównej</a></p>
-
-{% endblock %}
diff --git a/apps/edition1/templates/edition1/technical.html b/apps/edition1/templates/edition1/technical.html
deleted file mode 100644 (file)
index ada8028..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-<h1>
-<a href='..'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
-Turniej Elektrybałtów</h1>
-<h2>Konkurs automatycznej poezji</h2>
-
-<blockquote>
-    <p>Gdy atoli, z lekka kulejąc, zbliżył się do maszyny, ta,
-    na widok obcęgów w jego dłoni i błysków desperacji w oku, buchnęła taką
-    namiętną liryką błagając o łaskę, że rozszlochany Trurl cisnął narzędzia
-    i wrócił do siebie, brnąc po kolana w nowych utworach elektroducha, które
-    sięgały mu do pół piersi, zaścielając szemrzącym oceanem papieru całą halę.</p>
-
-    <p>(Stanisław Lem, „Cyberiada”, „Wyprawa pierwsza A, czyli Elektrybałt Trurla”)</p>
-</blockquote>
-
-
-
-<h3>Wymogi wobec zgłaszanych programów</h3>
-
-<ul>
-    <li>Nie nakładamy ograniczeń na wybór języka programowania. Program
-    powinien dać się jednak uruchomić w środowisku GNU/Linux przy użyciu
-    wolnodostępnych narzędzi.</li>
-
-    <li>Warunkiem dopuszczalności jest udostępnienie kodu źródłowego na wolnej
-    licencji <a href="http://www.gnu.org/licenses/agpl.html">GNU AGPL</a>
-
-    (<a href="http://www.gnu.org/licenses/gpl-howto.pl.html">jak to zrobić?)</a>
-    Programy zostaną upublicznione – ale dopiero po upłynięciu terminu
-    nadsyłania zgłoszeń. Warunek ten oznacza w szczególności, że zgłoszenie
-    musi zawierać kod źródłowy. Nie wchodzą w grę żadne skompilowane, pośrednie,
-    zaciemnione wersje – kod powinien zostać udostępniony w takiej postaci,
-    nad jaką normalnie pracuje programista.</li>
-
-    <li>Program przy tworzeniu wierszy musi w istotny sposób korzystać
-    z zasobów Wolnych Lektur. Elementy wynikowych tekstów nie mogą być
-    zaszyte w treści samego programu. Program nie może też korzystać
-    podczas pracy z innych źródeł informacji – musi być jasne, że program
-    <em>naprawdę</em> miksuje dostarczoną mu literaturę, a nie odtwarza nagraną
-    uprzednio taśmę. Nie jest wymagane korzystanie z wszystkich utworów –
-    program może miksować np. tylko poezję romantyczną albo tylko fragmenty
-    oznaczone wybranymi motywami literackimi.</li>
-
-    <li>Generowanie wiersza nie powinno trwać więcej niż kilka sekund.
-    W ramach procesu instalacji programu dopuszczalne (i wskazane!) jest
-    natomiast uprzednie zgromadzenie niezbędnych informacji wynikających
-    z analizy tekstów źródłowych. Najlepiej więc dostarczyć dwa programy
-    (albo jeden z różnymi opcjami uruchomienia) – jeden pobierający utwory,
-    analizujący je i zapisujący efekty tej analizy, a drugi generujący
-    wiersze na podstawie zgromadzonej uprzednio informacji. Sądzimy, że
-    ok. 10MiB powinno wystarczyć każdemu
-    <a href="http://en.wikiquote.org/wiki/Talk:Bill_Gates#640K.2F1MB">[sic!]</a>,
-    ale w razie potrzeby będziemy się starali być elastyczni.</li>
-
-    <li>Program powinien wypisać wiersz na standardowe wyjście w postaci
-    czystego tekstu, najlepiej używając kodowania UTF-8 (czyli tego samego,
-    które jest używane w plikach źródłowych).</li>
-
-    <li>Maksymalna długość wiersza wynosi 1000 znaków – dalsze znaki zostaną
-    odcięte. Poza tym ograniczeniem długość i forma wiersza pozostaje w gestii
-    autora i jego programu.</li>
-
-    <li>Odrzucone zostana programy, które będą usiłowały w jakikolwiek
-    sposób zagrozić stabilności lub bezpieczeństwu serwera.</li>
-</ul>
-
-
-<h3>W jaki sposób pobierać utwory?</h3>
-
-<p>Źródłowe utwory można pobierać na kilka sposobów:</p>
-
-<ul>
-    <li>Korzystając z <a href="http://www.wolnelektury.pl/api/">API Wolnych Lektur</a>.</li>
-
-    <li>Pobierając <a href="http://www.wolnelektury.pl/media/packs/xml-all.zip">
-    paczkę źródłowych plików XML</a> i pracując z nimi bądź to samodzielnie,
-    bądź korzystając
-    z <a href="https://github.com/fnp/librarian">narzędzi stworzonych na potrzeby Wolnych Lektur</a>.</li>
-
-    <li>Pobierając paczkę plików tekstowych. Przygotowaliśmy do wyboru dwie:
-    <a href="http://www.wolnelektury.pl/media/packs/txt-all.zip">ze wszystkimi utworami</a>
-    oraz <a href="http://www.wolnelektury.pl/media/packs/txt-liryka.zip">tylko z liryką</a>.</li>
-</ul>
-
-<p>Wszystkie pliki źródłowe są zapisane przy użyciu kodowania UTF-8.</p>
-
-<p>Przykładowy program (napisany w Pythonie), obrazujący wykorzystanie
-każdego z tych sposobów, można znaleźć
-<a href="https://github.com/fnp/lesmianator">w naszym repozytorium na GitHubie</a>.
-Jest to po prostu Leśmianator – w wersji przygotowanej zgodnie z warunkami
-turnieju.</p>
-
-
-<h3>Gdzie wysyłać zgłoszenia?</h3>
-
-<p>Zgłoszenia, a także wszelkiego rodzaju pytania i wątpliwości prosimy kierować na adres
-<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;">&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;</a>.
-Prosimy też o dołączenie do każdego zgłoszenia klauzuli o treści:
-<cite>Zgłaszam się do konkursu „Turniej Elektrybałtów” i oświadczam, że
-znam i akceptuję jego <a href="{% url 'e1_rules_page' %}">regulamin</a></cite>.
-
-</p>
-
-
-
-
-<p class='more'><a href="{% url 'e1_main_page' %}">Powrót do strony głównej</a></p>
-
-
-{% endblock %}
-    
diff --git a/apps/edition1/urls.py b/apps/edition1/urls.py
deleted file mode 100644 (file)
index 76dadd5..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-from django.conf.urls import url
-from django.views.generic import TemplateView
-from . import views
-
-
-urlpatterns = [
-    url(r'^$', views.home, name='e1_main_page'),
-    url(r'^regulamin/$', TemplateView.as_view(template_name='edition1/rules.html'),
-        name='e1_rules_page'),
-    url(r'^wiecej/$', TemplateView.as_view(template_name='edition1/more.html'),
-        name='e1_more_page'),
-    url(r'^technikalia/$', TemplateView.as_view(template_name='edition1/technical.html'),
-        name='e1_technical_page'),
-]
diff --git a/apps/edition1/views.py b/apps/edition1/views.py
deleted file mode 100644 (file)
index 6d35feb..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-from django.shortcuts import render
-from poetry.models import Poem
-
-def home(request):
-    last = Poem.objects.all().order_by('-created_at')[:10]
-    return render(request, "edition1/home.html", locals())
diff --git a/apps/edition2/__init__.py b/apps/edition2/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/apps/edition2/static/edition2/style.css b/apps/edition2/static/edition2/style.css
deleted file mode 100644 (file)
index 4bee9cf..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-html {
-    margin: 0;
-}
-
-body {
-    margin: 0;
-    padding: 0;
-
-    background: #191919;
-    color: #989898;
-
-    font-family: Georgia,serif;
-}
-
-#body-wrapper {
-    color: black;
-    background: #F7F7F7;
-    padding-bottom: 3em;
-}
-#body {
-    max-width: 900px;
-    margin:auto;
-    padding: 1em;
-}
-
-
-#content {
-    width: 480px;
-}
-
-
-
-h1 {
-    font: bold 2.2em Georgia,serif;
-    margin-bottom: .2em;
-}
-
-
-h2 {
-    font-size: 1.1em;
-    margin:0;
-}
-
-a {
-    color: #0D777E;
-    text-decoration: none;
-}
-a:hover {
-    border-bottom: 1px dotted;
-}
-
-
-.plain li {
-    list-style: none;
-}
-
-li {
-    margin: 1em;
-}
-
-#termin-wrap {
-    margin-top: 3em;
-}
-
-
-.clr {
-    clear: both;
-}
-
-footer {
-    background: #191919;
-    color: #989898;
-    margin: 0 auto 0 auto;
-    padding: 1em;
-    clear: both;
-    text-align: center;
-}
-footer img {
-    margin: 0 20px;
-    vertical-align: middle;
-}
-footer a:hover {
-    border: none;
-}
-
-
-blockquote {
-    font-size: .9em;
-    font-style: italic;
-    margin-left: 350px;
-    margin-right: 50px;
-    margin-bottom: 4em;
-}
-blockquote p {
-    margin: .5em 0 0 0;
-}
-
-.more {
-    text-align: right;
-}
-
-.uwaga {
-       border: 1px solid #ddd;
-       padding: 0 1em;
-    margin: 1em 0;
-    background: white;
-    box-shadow: 2px 2px 2px #DDDDDD;
-}
-
-.social {
-    margin: .5em 0 2em 0;
-}
\ No newline at end of file
diff --git a/apps/edition2/templates/edition2/base.html b/apps/edition2/templates/edition2/base.html
deleted file mode 100644 (file)
index fbb7a81..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Turniej Wolnych Lektur{% block "extratitle" %}{% endblock %}</title>
-    <meta charset="utf-8" />
-
-    <link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
-    <style type="text/css">
-    @import "{{ STATIC_URL }}edition2/style.css";
-    @import "{{ STATIC_URL }}js/jquery.countdown.css";
-    </style>
-</head>
-
-<body>
-
-<div id="body-wrapper">
-<div id="body">
-{% block "body" %}{% endblock %}
-</div>
-</div>
-
-<footer>
-<a href='http://nowoczesnapolska.org.pl'><img src='{{ STATIC_URL }}img/fnp_black.png' alt='Fundacja Nowoczesna Polska' title='Fundacja Nowoczesna Polska' /></a>
-<a href='http://wolnelektury.pl'><img src='{{ STATIC_URL }}img/wl_black.png' alt='Wolne Lektury' title='Wolne Lektury' /></a>
-</footer>
-
-{% load piwik_tags %}
-{% tracking_code %}
-</body>
-
-
-</html>
diff --git a/apps/edition2/templates/edition2/home.html b/apps/edition2/templates/edition2/home.html
deleted file mode 100644 (file)
index dcac65d..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-
-<div style="float:right">
-<img src="{{ STATIC_URL }}img/turniej.png" style='float:right; margin-bottom: 2em;' alt="logo Turnieju Elektrybałtów: frontalny widok maszynki do mielenia mięsa" />
-</div>
-
-<div id="content">
-<h1>II Turniej Wolnych Lektur</h1>
-<h2>Edycja wizualna</h2>
-<p class="social">
-    {% load fnp_share %}
-    {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
-</p>
-
-<div class="uwaga">
-<p>Zdecydowaliśmy się nie rozstrzygać II edycji Turnieju Wolnych Lektur
-ze względu na niewystarczającą liczbę i poziom zgłoszeń.</p>
-
-<p>Zobacz wyniki pierwszej edycji – <a href="{% url 'e1_main_page' %}">Turnieju Elektrybałtów</a>.</p>
-</div>
-
-<p>Wszelkie pytania i wątpliwości proszę kierować na adres
-<a href="mailto:turniej@nowoczesnapolska.org.pl">turniej@nowoczesnapolska.org.pl</a></p>
-
-<div class='clr'></div>
-</div>
-
-
-{% endblock %}
diff --git a/apps/edition2/templates/edition2/more.html b/apps/edition2/templates/edition2/more.html
deleted file mode 100644 (file)
index 85a6689..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-
-<h1>
-    <a href='{% url "e2_main_page" %}' style="float:left;">
-        <img src="{{ STATIC_URL }}img/turniej-maly.png"
-        style='margin-right: .5em;' /></a>
-    II Turniej Wolnych Lektur</h1>
-<h2>Edycja wizualna</h2>
-<p class="social">
-    {% load fnp_share %}
-    {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
-</p>
-
-
-
-
-<p>Konkurs startuje 4 stycznia 2013 roku. Termin nadsyłania prac upływa <del>15</del> <ins>22</ins> lutego 2013 roku.
-Powinno być dość czasu na dopracowanie swoich pomysłów.</p>
-
-<h3>Przebieg konkursu:</h3>
-
-<ol>
-    <li>Konkurs startuje 4 stycznia 2013 roku.</li>
-    <li>Termin nadsyłania prac upływa <strong><del>15</del> <ins>22</ins> lutego</strong> 2013 roku.</li>
-    <li>Warunkiem dopuszczenia do konkursu jest udostępnienie swojego zgłoszenia
-    (w przypadku zgłoszenia programu – kodu źródłowego) na
-    <a href="http://freedomdefined.org/Licenses">wolnej licencji</a>.
-    Informacje o tym, jak to zrobić, znajdują się np. na stronach
-    <a href="http://www.gnu.org/licenses/gpl-howto.pl.html">projektu GNU</a>
-    czy <a href="http://creativecommons.org/choose/">Creative Commons</a>.</li>
-    <li>Zgłoszenia zostaną udostępnione publicznie na stronie konkursu po
-    zamknięciu etapu zgłoszeń. Autorzy nie muszą (choć oczywiście mogą)
-    upubliczniać ich wcześniej.</li>
-    <li>Do końca lutego jury konkursowe wybierze zwyciązcę konkursu.</li>
-    <li>Główną nagrodą jest czytnik e-booków Amazon Kindle z kompletem
-    książek z <a href="http://wolnelektury.pl">Wolnych Lektur</a> w formacie MOBI.</li>
-</ol>
-
-<p class='more'><a href="..">Powrót do strony głównej</a></p>
-
-{% endblock %}
diff --git a/apps/edition2/templates/edition2/rules.html b/apps/edition2/templates/edition2/rules.html
deleted file mode 100644 (file)
index cb3a692..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-
-
-<h1>
-    <a href='{% url "e2_main_page" %}' style="float:left;">
-        <img src="{{ STATIC_URL }}img/turniej-maly.png"
-        style='margin-right: .5em;' /></a>
-    II Turniej Wolnych Lektur</h1>
-<h2>Edycja wizualna</h2>
-<p class="social">
-    {% load fnp_share %}
-    {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
-</p>
-
-
-
-
-<h3>Regulamin konkursu</h3>
-
-
-<ol>
-    <li>Organizatorem konkursu jest fundacja Nowoczesna Polska. </li>
-
-    <li>Przedmiotem konkursu jest wizualizacja oparta na Wolnych Lekturach.
-    Wszystkie zgłoszenia (w przypadku programów – ich kod źródłowy) biorące
-    udział w konkursie muszą być udostępnione na
-    <a href="http://freedomdefined.org/Licenses">wolnej licencji</a>.
-    Wizualizacje muszą być dostępne
-    w <a href="http://pl.wikipedia.org/wiki/Format_otwarty">otwartym formacie</a>.</li>
-
-    <li>Konkurs trwa od 4 stycznia do <del>15</del> <ins>22</ins> lutego 2013 roku i ma charakter otwarty.
-    Jedna osoba może wysłać więcej niż jedno zgłoszenie.
-    Aby wziąć udział udział w konkursie, należy wysłać swoje zgłoszenie na adres
-    <a href="mailto:turniej@nowoczesnapolska.org.pl">turniej@nowoczesnapolska.org.pl</a>
-    z klauzulą: 
-    <cite>Zgłaszam się do konkursu „II Turniej Wolnych Lektur” i oświadczam, że
-    znam i akceptuję jego regulamin</cite>.</li>
-
-    <li>Nagrodą główną jest czytnik Amazon Kindle z kompletem książek
-    z Wolnych Lektur w formacie MOBI. Nie ma możliwości zamiany nagrody na jej
-    równowartość pieniężną.</li>
-
-    <li>Organizator może odwołać konkurs w każdym czasie, bez podawania
-    przyczyny. W takim przypadku uczestnikom konkursu nie przysługuje żadna
-    rekompensata. Uczestnicy zgłaszając swój udział w konkursie automatycznie
-    wyrażają zgodę na wykorzystanie ich wizerunku w materiałach promocyjnych
-    konkursu oraz materiałach promocyjnych fundacji Nowoczesna Polska.</li>
-
-    <li>Organizator zastrzega sobie prawo do odrzucenia zgłoszenia, którego
-    udostępnienie na stronie konkursu mogłoby zagrażać stabilności, responsywności
-    albo bezpieczeństwu serwera albo oprogramowania użytkownika, a także takich,
-    których poprawne uruchomienie okaże się niemożliwe lub poważnie utrudnione.</li>
-
-    <li>Organizator konkursu nie ponosi odpowiedzialności za wszelkie
-    roszczenia osób trzecich wynikające z tytułu wykorzystania materiałów
-    zgłoszonych przez uczestników konkursu jako własnych. Prace naruszające
-    prawa autorskie będą dyskwalifikowane.</li>
-
-    <li>Organizator zatrzega sobie prawo wprowadzenia zmian w regulaminie
-    konkursu.</li>
-</ul>
-
-
-
-
-<p class='more'><a href="..">Powrót do strony głównej</a></p>
-
-{% endblock %}
diff --git a/apps/edition2/templates/edition2/technical.html b/apps/edition2/templates/edition2/technical.html
deleted file mode 100644 (file)
index bb55b09..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-
-
-<h1>
-    <a href='{% url "e2_main_page" %}' style="float:left;">
-        <img src="{{ STATIC_URL }}img/turniej-maly.png"
-        style='margin-right: .5em;' /></a>
-    II Turniej Wolnych Lektur</h1>
-<h2>Edycja wizualna</h2>
-<p class="social">
-    {% load fnp_share %}
-    {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
-</p>
-
-
-<h3>Wymogi techniczne wobec zgłoszeń</h3>
-
-<ul>
-    <li>Format wizualizacji powinien być otwarty. Jeśli zgłoszenie zawiera
-    oprogramowanie, powinno dać się ono uruchomić w środowisku GNU/Linux
-    przy użyciu wolnodostępnych narzędzi.</li>
-
-    <li>Warunkiem dopuszczenia do konkursu jest udostępnienie swojego zgłoszenia
-    (w przypadku zgłoszenia programu – jego kodu źródłowego) na
-    <a href="http://freedomdefined.org/Licenses">wolnej licencji</a>.
-    Informacje o tym, jak to zrobić, znajdują się np. na stronach
-    <a href="http://www.gnu.org/licenses/gpl-howto.pl.html">projektu GNU</a>
-    czy <a href="http://creativecommons.org/choose/">Creative Commons</a>.</li>
-
-    <li>Wizualizacja powinna dotyczyć zasobów
-    <a href="http://wolnelektury.pl">Wolnych Lektur</a>. 
-    Nie jest wymagane wykorzystanie całości tych zasobów – można pokazać np.
-    tylko wybrany utwór. Można też poddać dane uprzedniej obróbce.
-    Za przykład niech posłuży <a href="http://teatr.wolnelektury.pl">prosty teatrzyk</a>
-    na podstawie pliku XML wyświetlający „Romea i Julię” w postaci animacji SVG.</li>
-
-    <li>Odrzucone zostaną zgłoszenia, które będą usiłowały w jakikolwiek
-    sposób zagrozić stabilności lub bezpieczeństwu serwera albo użytkownika.</li>
-</ul>
-
-
-<h3>Gdzie wysyłać zgłoszenia?</h3>
-
-<p>Zgłoszenia, a także wszelkiego rodzaju pytania i wątpliwości prosimy kierować na adres
-<a href="mailto:turniej@nowoczesnapolska.org.pl">turniej@nowoczesnapolska.org.pl</a>.
-Prosimy też o dołączenie do każdego zgłoszenia klauzuli o treści:
-<cite>Zgłaszam się do konkursu „II Turniej Wolnych Lektur” i&nbsp;oświadczam, że
-    znam i akceptuję jego <a href="{% url 'e2_rules_page' %}">regulamin</a></cite>.
-
-</p>
-
-
-
-
-<p class='more'><a href="{% url 'e2_main_page' %}">Powrót do strony głównej</a></p>
-
-
-{% endblock %}
-    
diff --git a/apps/edition2/urls.py b/apps/edition2/urls.py
deleted file mode 100755 (executable)
index 0cb0f57..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-from django.conf.urls import url
-from django.views.generic import TemplateView
-
-urlpatterns = [
-    url(r'^$', TemplateView.as_view(template_name='edition2/home.html'),
-        name='e2_main_page'),
-    url(r'^regulamin/$', TemplateView.as_view(template_name='edition2/rules.html'),
-        name='e2_rules_page'),
-    url(r'^wiecej/$', TemplateView.as_view(template_name='edition2/more.html'),
-        name='e2_more_page'),
-    url(r'^technikalia/$', TemplateView.as_view(template_name='edition2/technical.html'),
-        name='e2_technical_page'),
-]
diff --git a/apps/poetry/__init__.py b/apps/poetry/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/apps/poetry/migrations/0001_initial.py b/apps/poetry/migrations/0001_initial.py
deleted file mode 100644 (file)
index 81c630c..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.db import models, migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='Poem',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
-                ('slug', models.SlugField()),
-                ('title', models.CharField(null=True, max_length=255, blank=True)),
-                ('text', models.TextField()),
-                ('created_at', models.DateTimeField(db_index=True, auto_now_add=True)),
-                ('seen_at', models.DateTimeField(auto_now_add=True)),
-                ('view_count', models.IntegerField(default=1)),
-                ('for_contest', models.BooleanField(default=False)),
-                ('in_contest', models.BooleanField(default=False)),
-            ],
-            options={
-            },
-            bases=(models.Model,),
-        ),
-        migrations.CreateModel(
-            name='Poet',
-            fields=[
-                ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
-                ('name', models.CharField(max_length=50)),
-                ('path', models.CharField(max_length=255)),
-                ('slug', models.SlugField(unique=True)),
-                ('author', models.CharField(max_length=128, blank=True)),
-                ('url', models.CharField(max_length=255, blank=True)),
-                ('description', models.TextField(blank=True)),
-                ('first_line_title', models.BooleanField(default=False)),
-                ('skip_first_lines', models.IntegerField(default=0)),
-            ],
-            options={
-            },
-            bases=(models.Model,),
-        ),
-        migrations.AddField(
-            model_name='poem',
-            name='poet',
-            field=models.ForeignKey(to='poetry.Poet', on_delete=models.CASCADE),
-            preserve_default=True,
-        ),
-    ]
diff --git a/apps/poetry/migrations/__init__.py b/apps/poetry/migrations/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/apps/poetry/models.py b/apps/poetry/models.py
deleted file mode 100644 (file)
index 58b8caf..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-import os
-import subprocess
-from django.db import models
-from django.urls import reverse
-from django.conf import settings
-from poetry.utils import get_hash
-
-
-class Poet(models.Model):
-    name = models.CharField(max_length=50)
-    path = models.CharField(max_length=255)
-    slug = models.SlugField(max_length=50, unique=True, db_index=True)
-    author = models.CharField(max_length=128, blank=True)
-    url = models.CharField(max_length=255, blank=True)
-    description = models.TextField(blank=True)
-    first_line_title = models.BooleanField(default=False)
-    skip_first_lines = models.IntegerField(default=0)
-
-    def __str__(self):
-        return self.name
-
-    def get_absolute_url(self):
-        return reverse('poetry_poet', kwargs={'slug': self.slug})
-
-    def write(self):
-        curdir = os.getcwd()
-        os.chdir(os.path.dirname(self.path))
-        proc = subprocess.Popen(self.path,
-            stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-        os.chdir(curdir)
-        stdout, stderr = proc.communicate()
-        text = str(stdout, "utf-8", errors="ignore")[:1000]
-        slug = get_hash(text)
-        title = ''
-        if self.first_line_title:
-            title, text = text.split('\n', 1)
-        if self.skip_first_lines:
-            text = text.split('\n', self.skip_first_lines)[-1]
-        text = text.strip('\n')
-        poem = self.poem_set.create(
-            slug=slug,
-            text=text,
-            title=title
-            )
-        return poem
-
-    def make_for_contest(self):
-        assert not self.poem_set.filter(for_contest=True).exists()
-        for i in range(settings.POETRY_POEMS_FOR_CONTEST):
-            p = self.write()
-            p.for_contest = True
-            p.save()
-        return self.poem_set.filter(for_contest=True)
-
-    def contest_poems(self):
-        return self.poem_set.filter(in_contest=True)
-
-
-class Poem(models.Model):
-    slug = models.SlugField(max_length=50, db_index=True)
-    title = models.CharField(max_length=255, null=True, blank=True)
-    text = models.TextField()
-    poet = models.ForeignKey(Poet, on_delete=models.CASCADE)
-    created_at = models.DateTimeField(auto_now_add=True, editable=False, db_index=True)
-    seen_at = models.DateTimeField(auto_now_add=True, editable=False)
-    view_count = models.IntegerField(default=1)
-
-    for_contest = models.BooleanField(default=False)
-    in_contest = models.BooleanField(default=False)
-
-    def __str__(self):
-        oneliner = "%s, %s" % (self.poet.name, self.pretty_title())
-        oneliner += " [%s…]" % (" ".join(self.text.split()[:5]))
-        return oneliner
-
-    def get_absolute_url(self):
-        return reverse('poetry_poem', kwargs={'slug': self.slug})
-
-    def pretty_title(self):
-        return self.title or "***"
-
-    def visit(self):
-        self.view_count += 1
-        self.seen_at = datetime.now()
-        self.save()
diff --git a/apps/poetry/static/poetry/poem.css b/apps/poetry/static/poetry/poem.css
deleted file mode 100644 (file)
index e2f6f01..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-body {
-    font-size: 16px;
-    font: Georgia, "Times New Roman", serif;
-    line-height: 1.5em;
-    margin: 0;
-}
-
-a {
-    color: blue;
-    text-decoration: none;
-}
-
-a:hover {
-    border-bottom: 1px dotted;
-}
-
-#book-text {
-    margin: 3em;
-    max-width: 36em;
-}
-
-/* ================================== */
-/* = Header with logo and menu      = */
-/* ================================== */
-#header {
-    margin: 3.4em 0 0 1.4em;
-}
-
-img {
-    border: none;
-}
-
-
-#menu {
-    position: fixed;
-    left: 0em;
-    top: 0em;
-    width: 100%;
-    height: 1.5em;
-    background: #333;
-    color: #FFF;
-    opacity: 0.9;
-    z-index: 99;
-}
-
-#menu a.menu-link {
-    display: block;
-    float: left;
-    height: 1.5em;
-    margin-left: 0.5em;
-    text-align: center;
-    color: #FFF;
-}
-#menu span {
-    color: #888;
-    font-style: italic;
-    font-size: .75em;
-    margin-right: 0.5em;
-}
-
-
-/* =================================================== */
-/* = Common elements: headings, paragraphs and lines = */
-/* =================================================== */
-h1 {
-    font-size: 3em;
-    margin: 1.5em 0;
-    text-align: center;
-    line-height: 1.5em;
-    font-weight: bold;
-}
-
-h2 {
-    font-size: 2em;
-    margin: 1.5em 0 0;
-    font-weight: bold;
-    line-height: 1.5em;
-}
-
-h3 {
-    font-size: 1.5em;
-    margin: 1.5em 0 0;
-    font-weight: normal;
-    line-height: 1.5em;
-}
-
-h4 {
-    font-size: 1em;
-    margin: 1.5em 0 0;
-    line-height: 1.5em;
-}
-
-p {
-    margin: 0;
-}
-
-
-#footnotes {
-    margin-top: 3em;
-    margin-left: 2.5em;
-    font-size: 0.875em;
-}
-
-#footnotes p, #footnotes ul {
-    margin: 1.5em 0;
-}
-
-#footnotes .permalink {
-    font-size: .75em;
-}
-
-/* =================== */
-/* = Custom elements = */
-/* =================== */
-span.author {
-    font-size: 0.5em;
-    display: block;
-    line-height: 1.5em;
-    margin-bottom: 0.25em;
-}
-
-span.author a {
-    color: inherit;
-}
-
-span.author a {
-    color: inherit;
-}
-
-
-/* =================================== */
-/* = Hide some elements for printing = */
-/* =================================== */
-
-@media print {
-    #menu {display: none;}
-}
diff --git a/apps/poetry/templates/poetry/contest.html b/apps/poetry/templates/poetry/contest.html
deleted file mode 100644 (file)
index 9852c75..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-<h1>
-<a href='{% url "e1_main_page" %}'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
-Turniej Elektrybałtów: utwory wybrane do konkursu</h1>
-
-<div class="social">
-<span style="position:relative; top: -5px;" >
-    <div class="fb-like" data-href="http://turniej.wolnelektury.pl" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
-</span>
-<g:plusone annotation="bubble" href="http://turniej.wolnelektury.pl"></g:plusone>
-<script>
-  new nk_fajne({
-    url: "http://turniej.wolnelektury.pl",
-    type: 4,
-    color: 0,
-    title: "Turniej Elektrybałtów",
-    image: "http://turniej.wolnelektury.pl/turniej.png",
-    description: "Turniej Elektrybałtów - otwarty konkurs na najlepszego automatycznego poetę."
-  });
-</script>
-</div>
-
-<div style='clear: both'></div>
-
-{% for poet in poets %}
-    <h2><a href="{{ poet.get_absolute_url }}">{{ poet }}</a></h2>
-    <ul class='plain'>
-    {% for poem in poet.contest_poems %}
-        <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
-    {% endfor %}
-    </ul>
-{% endfor %}
-</ul>
-
-{% endblock %}
diff --git a/apps/poetry/templates/poetry/main.html b/apps/poetry/templates/poetry/main.html
deleted file mode 100644 (file)
index 6234003..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-<h1>
-<a href='{% url "e1_main_page" %}'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
-Turniej Elektrybałtów</h1>
-
-<div class="social">
-<span style="position:relative; top: -5px;" >
-    <div class="fb-like" data-href="http://turniej.wolnelektury.pl" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
-</span>
-<g:plusone annotation="bubble" href="http://turniej.wolnelektury.pl"></g:plusone>
-<script>
-  new nk_fajne({
-    url: "http://turniej.wolnelektury.pl",
-    type: 4,
-    color: 0,
-    title: "Turniej Elektrybałtów",
-    image: "http://turniej.wolnelektury.pl/turniej.png",
-    description: "Turniej Elektrybałtów - otwarty konkurs na najlepszego automatycznego poetę."
-  });
-</script>
-</div>
-
-<h2>Uczestnicy:</h2>
-<ul class='poet-list'>
-{% for poet in poets %}
-    <li><a href="{{ poet.get_absolute_url }}">{{ poet }}</a>
-        (<a href="{% url 'poetry_new' poet.slug %}">Twórz-że!</a>)</li>
-{% endfor %}
-</ul>
-
-<div style='clear: both'></div>
-
-<a class='tworz' href="{% url 'poetry_new' %}">Twórz-że się!</a>
-
-<h2><a href="{% url 'poetry_contest' %}">Utwory do konkursu zostały wybrane!</a></h2>
-
-<p>Spośród wygenerowanych przz nas propozycji autorzy programów wybrali po trzy utwory.</p>
-<p><a href="{% url 'poetry_contest' %}">Zobacz wiersze startujące w konkursie!</a></p>
-</p>
-
-
-
-
-<h2>Ostatnio opublikowane utwory:</h2>
-<ul class='plain'>
-{% for poem in last %}
-    <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
-{% endfor %}
-</ul>
-
-{% endblock %}
diff --git a/apps/poetry/templates/poetry/poem.html b/apps/poetry/templates/poetry/poem.html
deleted file mode 100644 (file)
index 0ac6b3c..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Turniej Elektrybałtów: {{ poem }}</title>
-    <meta charset="utf-8" />
-
-    <link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
-    <style type="text/css">
-    @import "{{ STATIC_URL }}poetry/poem.css";
-    </style>
-</head>
-
-<body>
-
-<div id="fb-root"></div>
-<script>(function(d, s, id) {
-  var js, fjs = d.getElementsByTagName(s)[0];
-  if (d.getElementById(id)) {return;}
-  js = d.createElement(s); js.id = id;
-  js.src = "//connect.facebook.net/pl_PL/all.js#xfbml=1";
-  fjs.parentNode.insertBefore(js, fjs);
-}(document, 'script', 'facebook-jssdk'));</script>
-<script src="http://0.s-nk.pl/script/nk_widgets/nk_widget_fajne_embed"></script>
-
-        <div id="menu">
-            <a href='{% url "poetry_new" %}' class='menu-link'>Twórzże się jeszcze raz!</a>
-            <span style='float: right'>Turniej Elektrybałtów</a>
-        </div>
-
-        <div id="header">
-            <div id="logo">
-                <a href="{% url "e1_main_page" %}"><img src="{{ STATIC_URL }}img/turniej-maly.png" alt="logo Turnieju Elektrybałtów" /></a>
-            </div>
-        </div>
-
-        <div id="book-text">
-            <h1>
-                <span class="author"><a href="{{ poem.poet.get_absolute_url }}">{{ poem.poet.name }}</a></span>
-                <span class="title">{% if poem.title %}{{ poem.title }}{% else %}***{% endif %}</span>
-            </h1>
-            {{ poem.text|linebreaksbr }}
-        <div id="footnotes" >
-            <h3>O utworze</h3>
-            <p>Autor: <a href="{{ poem.poet.get_absolute_url }}">{{ poem.poet.name }}</a> (<a href="{% url 'poetry_main' %}">wszyscy autorzy</a>).
-                <br/>Zobacz <a href="{% url 'poetry_new' poem.poet.slug %}">nowy wiersz</a> tego autora,
-                albo <a href="{% url 'poetry_new' %}">nowy wiersz dowolnego autora</a>.</p>
-
-
-
-<div>
-<h3>Podziel się wierszem!</h3>
-<span style="position:relative; top: -5px;" >
-    <div class="fb-like" data-href="http://turniej.wolnelektury.pl{{ poem.get_absolute_url }}" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
-</span>
-<g:plusone annotation="bubble" href="http://turniej.wolnelektury.pl{{ poem.get_absolute_url }}"></g:plusone>
-
-<script>
-  new nk_fajne({
-    url: "http://turniej.wolnelektury.pl{{ poem.get_absolute_url }}",
-    type: 4,
-    color: 0,
-    title: "wiersz",
-    image: "http://turniej.wolnelektury.pl/turniej.png",
-    description: "{{ poem }}"
-  });
-</script>
-    <br/>
-        albo użyj linku:<br/>
-        <a class="permalink" href="{{ poem.get_absolute_url }}">http://turniej.wolnelektury.pl{{ poem.get_absolute_url }}</a>
-</div>
-
-
-
-
-        </div>
-
-<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
-  {lang: 'pl'}
-</script>
-{% load piwik_tags %}
-{% tracking_code %}
-</body>
-
-
-</html>
-
-
diff --git a/apps/poetry/templates/poetry/poet.html b/apps/poetry/templates/poetry/poet.html
deleted file mode 100644 (file)
index 7947a66..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-{% extends "edition1/base.html" %}
-
-
-{% block "extratitle" %}: {{ poet.name }}{% endblock %}
-
-
-{% block "body" %}
-
-<h1>
-<a href='{% url "e1_main_page" %}'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
-{{ poet.name }}</h1>
-
-<div>
-<span style="position:relative; top: -5px;" >
-    <div class="fb-like" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
-</span>
-<g:plusone annotation="bubble"></g:plusone>
-<script>
-  new nk_fajne({
-    url: "{{ request.build_absolute_uri }}",
-    type: 4,
-    color: 0,
-    title: "{{ poet.name }}",
-    image: "http://turniej.wolnelektury.pl/turniej.png",
-    description: "Turniej Elektrybałtów - konkurs na najlepszego automatycznego poetę."
-  });
-</script>
-</div>
-
-<p><a href="{% url 'poetry_main' %}">Zobacz wszystkich autorów.</a></p>
-
-<div class="poet-description">
-
-<p>Autor programu: <strong>{{ poet.author }}</strong></p>
-
-{{ poet.description|linebreaks }}
-
-<p>Kod źródłowy: <a href="{{ poet.url }}">{{ poet.url }}</a></p>
-
-<a class="tworz" href="{% url 'poetry_new' poet.slug %}">Twórz-że!</a>
-
-</div>
-
-<h2>Utwory w konkursie (<a href="{% url 'poetry_contest' %}">zobacz wszystkie</a>)</h2>
-<ul class='plain'>
-{% for poem in in_contest %}
-    <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
-{% endfor %}
-</ul>
-
-<h2>Ostatnio opublikowane utwory:</h2>
-<ul class='plain'>
-{% for poem in last %}
-    <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
-{% endfor %}
-</ul>
-
-{% endblock %}
diff --git a/apps/poetry/urls.py b/apps/poetry/urls.py
deleted file mode 100644 (file)
index eb9b4f3..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-from django.conf.urls import url
-from . import views
-
-
-urlpatterns = [
-    url(r'^wiersz/(?P<slug>[a-zA-Z0-9-]+)/$', views.poem, name='poetry_poem'),
-
-    url(r"^$", views.main, name="poetry_main"),
-    url(r"^nowy/$", views.new, name="poetry_new"),
-    url(r"^konkurs/$", views.contest, name="poetry_contest"),
-    url(r"^(?P<slug>[a-zA-Z0-9-]+)/$", views.poet, name="poetry_poet"),
-    url(r"^(?P<slug>[a-zA-Z0-9-]+)/nowy/$", views.new, name="poetry_new"),
-]
diff --git a/apps/poetry/utils.py b/apps/poetry/utils.py
deleted file mode 100644 (file)
index 6366f08..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-import time
-
-from base64 import urlsafe_b64encode
-from hashlib import sha1
-
-
-def get_hash(seed):
-    sha_digest = sha1(('%d%s' % (time.time(), str(seed))
-        ).encode('utf-8', 'replace')).digest()
-    return urlsafe_b64encode(sha_digest).decode('latin1').replace('=', '').replace('_', '-').lower()
diff --git a/apps/poetry/views.py b/apps/poetry/views.py
deleted file mode 100644 (file)
index 71309d7..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-from django.shortcuts import render, get_object_or_404
-from poetry.models import Poet, Poem
-
-
-def new(request, slug=None):
-    if slug is not None:
-        poet = get_object_or_404(Poet, slug=slug)
-    else:
-        poet = Poet.objects.order_by('?')[0]
-
-    poem = poet.write()
-    return render(request, "poetry/poem.html", locals())
-
-
-def poem(request, slug):
-    poem = get_object_or_404(Poem, slug=slug)
-    return render(request, "poetry/poem.html", locals())
-
-
-def poet(request, slug):
-    poet = get_object_or_404(Poet, slug=slug)
-    last = poet.poem_set.order_by('-created_at')[:20]
-    in_contest = poet.poem_set.filter(in_contest=True).order_by('created_at')
-    return render(request, "poetry/poet.html", locals())
-
-
-def main(request):
-    poets = Poet.objects.all().order_by('?')
-    last = Poem.objects.all().order_by('-created_at')[:20]
-    return render(request, "poetry/main.html", locals())
-
-
-def contest(request):
-    poets = Poet.objects.all().order_by('?')
-    return render(request, "poetry/contest.html", locals())
-
diff --git a/manage.py b/manage.py
deleted file mode 100755 (executable)
index 0984221..0000000
--- a/manage.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python
-import os
-import sys
-
-ROOT = os.path.dirname(os.path.abspath(__file__))
-sys.path = [
-    os.path.join(ROOT, 'apps'),
-] + sys.path
-
-if __name__ == "__main__":
-    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "turniej.settings")
-
-    from django.core.management import execute_from_command_line
-
-    execute_from_command_line(sys.argv)
diff --git a/src/core/__init__.py b/src/core/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/core/localsettings.py.template b/src/core/localsettings.py.template
new file mode 100644 (file)
index 0000000..4345fcd
--- /dev/null
@@ -0,0 +1,23 @@
+ADMINS = (
+    #('Name', 'E-mail'),
+)
+
+MANAGERS = (
+    #('Name', 'E-mail'),
+)
+
+# on
+DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+        'NAME': '', # Or path to database file if using sqlite3.
+        'USER': '',                      # Not used with sqlite3.
+        'PASSWORD': '',                  # Not used with sqlite3.
+        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
+        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
+    }
+}
+
+
+SECRET_KEY = %(secret_key)r
+MEDIA_ROOT = '%(path)s/media/'
diff --git a/src/core/settings.py b/src/core/settings.py
new file mode 100644 (file)
index 0000000..37976da
--- /dev/null
@@ -0,0 +1,137 @@
+# Django settings for turniej project.
+import os.path
+
+PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
+
+DEBUG = False
+
+ADMINS = [
+    # ('Your Name', 'your_email@domain.com'),
+]
+
+MANAGERS = ADMINS
+
+DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+        'NAME': os.path.join(PROJECT_DIR, 'dev.db'), # Or path to database file if using sqlite3.
+        'USER': '',                      # Not used with sqlite3.
+        'PASSWORD': '',                  # Not used with sqlite3.
+        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
+        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
+    }
+}
+
+# Local time zone for this installation. Choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
+# although not all choices may be available on all operating systems.
+# On Unix systems, a value of None will cause Django to use the same
+# timezone as the operating system.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = None
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'pl'
+
+SITE_ID = 1
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+# If you set this to False, Django will not format dates, numbers and
+# calendars according to the current locale
+#USE_L10N = True
+
+# Absolute filesystem path to the directory that will hold user-uploaded files.
+# Example: "/home/media/media.lawrence.com/media/"
+MEDIA_ROOT = os.path.join(PROJECT_DIR, '../media')
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash.
+# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
+MEDIA_URL = '/media/'
+
+# Absolute path to the directory static files should be collected to.
+# Don't put anything in this directory yourself; store your static files
+# in apps' "static/" subdirectories and in STATICFILES_DIRS.
+# Example: "/home/media/media.lawrence.com/static/"
+STATIC_ROOT = os.path.join(PROJECT_DIR, '../static')
+
+# URL prefix for static files.
+# Example: "http://media.lawrence.com/static/"
+STATIC_URL = '/static/'
+
+# URL prefix for admin static files -- CSS, JavaScript and images.
+# Make sure to use a trailing slash.
+# Examples: "http://foo.com/static/admin/", "/static/admin/".
+ADMIN_MEDIA_PREFIX = '/static/admin/'
+
+# Additional locations of static files
+STATICFILES_DIRS = (
+    # Put strings here, like "/home/html/static" or "C:/www/django/static".
+    # Always use forward slashes, even on Windows.
+    # Don't forget to use absolute paths, not relative paths.
+
+    os.path.join(PROJECT_DIR, 'static'),
+)
+
+# List of finder classes that know how to find static files in
+# various locations.
+STATICFILES_FINDERS = (
+    'django.contrib.staticfiles.finders.FileSystemFinder',
+    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
+#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
+)
+
+TEMPLATES = [
+    {
+        'BACKEND': 'django.template.backends.django.DjangoTemplates',
+        'APP_DIRS': True,
+        'DIRS': [
+            os.path.join(PROJECT_DIR, 'templates'),
+        ],
+        'OPTIONS': {
+            'context_processors': [
+                "django.template.context_processors.debug",
+                "django.template.context_processors.i18n",
+                "django.template.context_processors.media",
+                "django.template.context_processors.static",
+                "django.contrib.messages.context_processors.messages",
+                "django.template.context_processors.request",
+            ],
+        },
+    },
+]
+
+MIDDLEWARE = [
+    'django.middleware.common.CommonMiddleware',
+]
+
+ROOT_URLCONF = 'core.urls'
+
+INSTALLED_APPS = [
+    'django.contrib.sites',
+    'django.contrib.staticfiles',
+
+    'piwik',
+
+    'fnpdjango',
+    'poetry',
+    'edition1',
+    'edition2',
+]
+
+POETRY_POEMS_FOR_CONTEST = 20
+
+ALLOWED_HOSTS = [
+    'turniej.wolnelektury.pl',
+]
+
+# Load localsettings, if they exist
+try:
+    from .localsettings import *
+except ImportError:
+    pass
diff --git a/src/core/static/img/cc.png b/src/core/static/img/cc.png
new file mode 100644 (file)
index 0000000..1de9d62
Binary files /dev/null and b/src/core/static/img/cc.png differ
diff --git a/src/core/static/img/di.png b/src/core/static/img/di.png
new file mode 100644 (file)
index 0000000..8136626
Binary files /dev/null and b/src/core/static/img/di.png differ
diff --git a/src/core/static/img/favicon.ico b/src/core/static/img/favicon.ico
new file mode 100644 (file)
index 0000000..89067a8
Binary files /dev/null and b/src/core/static/img/favicon.ico differ
diff --git a/src/core/static/img/fnp.png b/src/core/static/img/fnp.png
new file mode 100644 (file)
index 0000000..fe75e2d
Binary files /dev/null and b/src/core/static/img/fnp.png differ
diff --git a/src/core/static/img/fnp_black.png b/src/core/static/img/fnp_black.png
new file mode 100644 (file)
index 0000000..411b2fd
Binary files /dev/null and b/src/core/static/img/fnp_black.png differ
diff --git a/src/core/static/img/koed.png b/src/core/static/img/koed.png
new file mode 100644 (file)
index 0000000..6bcce17
Binary files /dev/null and b/src/core/static/img/koed.png differ
diff --git a/src/core/static/img/lempl.png b/src/core/static/img/lempl.png
new file mode 100644 (file)
index 0000000..51c9b9e
Binary files /dev/null and b/src/core/static/img/lempl.png differ
diff --git a/src/core/static/img/social/bigfacebook.png b/src/core/static/img/social/bigfacebook.png
new file mode 100644 (file)
index 0000000..630416c
Binary files /dev/null and b/src/core/static/img/social/bigfacebook.png differ
diff --git a/src/core/static/img/social/biggoogle.png b/src/core/static/img/social/biggoogle.png
new file mode 100644 (file)
index 0000000..19ad19d
Binary files /dev/null and b/src/core/static/img/social/biggoogle.png differ
diff --git a/src/core/static/img/social/bignk.png b/src/core/static/img/social/bignk.png
new file mode 100644 (file)
index 0000000..c119cd1
Binary files /dev/null and b/src/core/static/img/social/bignk.png differ
diff --git a/src/core/static/img/social/bigtwitter.png b/src/core/static/img/social/bigtwitter.png
new file mode 100644 (file)
index 0000000..fafbe64
Binary files /dev/null and b/src/core/static/img/social/bigtwitter.png differ
diff --git a/src/core/static/img/social/facebook.png b/src/core/static/img/social/facebook.png
new file mode 100644 (file)
index 0000000..dca6fe8
Binary files /dev/null and b/src/core/static/img/social/facebook.png differ
diff --git a/src/core/static/img/social/google.png b/src/core/static/img/social/google.png
new file mode 100644 (file)
index 0000000..c8c2882
Binary files /dev/null and b/src/core/static/img/social/google.png differ
diff --git a/src/core/static/img/social/nk.png b/src/core/static/img/social/nk.png
new file mode 100644 (file)
index 0000000..de6650f
Binary files /dev/null and b/src/core/static/img/social/nk.png differ
diff --git a/src/core/static/img/social/twitter.png b/src/core/static/img/social/twitter.png
new file mode 100644 (file)
index 0000000..6745ef4
Binary files /dev/null and b/src/core/static/img/social/twitter.png differ
diff --git a/src/core/static/img/turniej-maly.png b/src/core/static/img/turniej-maly.png
new file mode 100644 (file)
index 0000000..b11f0d6
Binary files /dev/null and b/src/core/static/img/turniej-maly.png differ
diff --git a/src/core/static/img/turniej.png b/src/core/static/img/turniej.png
new file mode 100644 (file)
index 0000000..dbcbda4
Binary files /dev/null and b/src/core/static/img/turniej.png differ
diff --git a/src/core/static/img/wl.png b/src/core/static/img/wl.png
new file mode 100644 (file)
index 0000000..1d6cb6a
Binary files /dev/null and b/src/core/static/img/wl.png differ
diff --git a/src/core/static/img/wl_black.png b/src/core/static/img/wl_black.png
new file mode 100644 (file)
index 0000000..c729463
Binary files /dev/null and b/src/core/static/img/wl_black.png differ
diff --git a/src/core/static/js/jquery.countdown-pl.js b/src/core/static/js/jquery.countdown-pl.js
new file mode 100644 (file)
index 0000000..b94665c
--- /dev/null
@@ -0,0 +1,18 @@
+/* http://keith-wood.name/countdown.html\r
+ * Polish initialisation for the jQuery countdown extension\r
+ * Written by Pawel Lewtak lewtak@gmail.com (2008) */\r
+(function($) {\r
+       $.countdown.regional['pl'] = {\r
+               labels: ['lat', 'miesięcy', 'tygodni', 'dni', 'godzin', 'minut', 'sekund'],\r
+               labels1: ['rok', 'miesiąc', 'tydzień', 'dzień', 'godzina', 'minuta', 'sekunda'],\r
+               labels2: ['lata', 'miesiące', 'tygodnie', 'dni', 'godziny', 'minuty', 'sekundy'],\r
+               compactLabels: ['l', 'm', 't', 'd'], compactLabels1: ['r', 'm', 't', 'd'],\r
+               whichLabels: function(amount) {\r
+                       var units = amount % 10;\r
+                       var tens = Math.floor((amount % 100) / 10);\r
+                       return (amount == 1 ? 1 : (units >= 2 && units <= 4 && tens != 1 ? 2 : 0));\r
+               },\r
+               digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],\r
+               timeSeparator: ':', isRTL: false};\r
+       $.countdown.setDefaults($.countdown.regional['pl']);\r
+})(jQuery);\r
diff --git a/src/core/static/js/jquery.countdown.css b/src/core/static/js/jquery.countdown.css
new file mode 100644 (file)
index 0000000..f47784b
--- /dev/null
@@ -0,0 +1,48 @@
+/* jQuery Countdown styles 1.6.1. */
+.hasCountdown {
+}
+.countdown_rtl {
+       direction: rtl;
+}
+.countdown_holding span {
+       color: #888;
+}
+.countdown_row {
+       clear: both;
+       width: 100%;
+       padding: 0px 2px;
+       text-align: center;
+}
+.countdown_show1 .countdown_section {
+       width: 98%;
+}
+.countdown_show2 .countdown_section {
+       width: 48%;
+}
+.countdown_show3 .countdown_section {
+       width: 32.5%;
+}
+.countdown_show4 .countdown_section {
+       width: 24.5%;
+}
+.countdown_show5 .countdown_section {
+       width: 19.5%;
+}
+.countdown_show6 .countdown_section {
+       width: 16.25%;
+}
+.countdown_show7 .countdown_section {
+       width: 14%;
+}
+.countdown_section {
+       display: block;
+       float: left;
+       text-align: center;
+}
+.countdown_amount {
+       font-size: 360%;
+}
+.countdown_descr {
+       display: block;
+       width: 100%;
+}
diff --git a/src/core/static/js/jquery.countdown.min.js b/src/core/static/js/jquery.countdown.min.js
new file mode 100644 (file)
index 0000000..ebd1314
--- /dev/null
@@ -0,0 +1,6 @@
+/* http://keith-wood.name/countdown.html\r
+   Countdown for jQuery v1.6.1.\r
+   Written by Keith Wood (kbwood{at}iinet.com.au) January 2008.\r
+   Available under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license. \r
+   Please attribute the author if you use it. */\r
+(function($){function Countdown(){this.regional=[];this.regional['']={labels:['Years','Months','Weeks','Days','Hours','Minutes','Seconds'],labels1:['Year','Month','Week','Day','Hour','Minute','Second'],compactLabels:['y','m','w','d'],whichLabels:null,digits:['0','1','2','3','4','5','6','7','8','9'],timeSeparator:':',isRTL:false};this._defaults={until:null,since:null,timezone:null,serverSync:null,format:'dHMS',layout:'',compact:false,significant:0,description:'',expiryUrl:'',expiryText:'',alwaysExpire:false,onExpiry:null,onTick:null,tickInterval:1};$.extend(this._defaults,this.regional['']);this._serverSyncs=[];function timerCallBack(a){var b=(a<1e12?(b=performance.now?(performance.now()+performance.timing.navigationStart):Date.now()):a||new Date().getTime());if(b-d>=1000){x._updateTargets();d=b}c(timerCallBack)}var c=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||null;var d=0;if(!c||$.noRequestAnimationFrame){$.noRequestAnimationFrame=null;setInterval(function(){x._updateTargets()},980)}else{d=window.animationStartTime||window.webkitAnimationStartTime||window.mozAnimationStartTime||window.oAnimationStartTime||window.msAnimationStartTime||new Date().getTime();c(timerCallBack)}}var Y=0;var O=1;var W=2;var D=3;var H=4;var M=5;var S=6;$.extend(Countdown.prototype,{markerClassName:'hasCountdown',propertyName:'countdown',_rtlClass:'countdown_rtl',_sectionClass:'countdown_section',_amountClass:'countdown_amount',_rowClass:'countdown_row',_holdingClass:'countdown_holding',_showClass:'countdown_show',_descrClass:'countdown_descr',_timerTargets:[],setDefaults:function(a){this._resetExtraLabels(this._defaults,a);$.extend(this._defaults,a||{})},UTCDate:function(a,b,c,e,f,g,h,i){if(typeof b=='object'&&b.constructor==Date){i=b.getMilliseconds();h=b.getSeconds();g=b.getMinutes();f=b.getHours();e=b.getDate();c=b.getMonth();b=b.getFullYear()}var d=new Date();d.setUTCFullYear(b);d.setUTCDate(1);d.setUTCMonth(c||0);d.setUTCDate(e||1);d.setUTCHours(f||0);d.setUTCMinutes((g||0)-(Math.abs(a)<30?a*60:a));d.setUTCSeconds(h||0);d.setUTCMilliseconds(i||0);return d},periodsToSeconds:function(a){return a[0]*31557600+a[1]*2629800+a[2]*604800+a[3]*86400+a[4]*3600+a[5]*60+a[6]},_attachPlugin:function(a,b){a=$(a);if(a.hasClass(this.markerClassName)){return}var c={options:$.extend({},this._defaults),_periods:[0,0,0,0,0,0,0]};a.addClass(this.markerClassName).data(this.propertyName,c);this._optionPlugin(a,b)},_addTarget:function(a){if(!this._hasTarget(a)){this._timerTargets.push(a)}},_hasTarget:function(a){return($.inArray(a,this._timerTargets)>-1)},_removeTarget:function(b){this._timerTargets=$.map(this._timerTargets,function(a){return(a==b?null:a)})},_updateTargets:function(){for(var i=this._timerTargets.length-1;i>=0;i--){this._updateCountdown(this._timerTargets[i])}},_optionPlugin:function(a,b,c){a=$(a);var d=a.data(this.propertyName);if(!b||(typeof b=='string'&&c==null)){var e=b;b=(d||{}).options;return(b&&e?b[e]:b)}if(!a.hasClass(this.markerClassName)){return}b=b||{};if(typeof b=='string'){var e=b;b={};b[e]=c}this._resetExtraLabels(d.options,b);$.extend(d.options,b);this._adjustSettings(a,d);var f=new Date();if((d._since&&d._since<f)||(d._until&&d._until>f)){this._addTarget(a[0])}this._updateCountdown(a,d)},_updateCountdown:function(a,b){var c=$(a);b=b||c.data(this.propertyName);if(!b){return}c.html(this._generateHTML(b)).toggleClass(this._rtlClass,b.options.isRTL);if($.isFunction(b.options.onTick)){var d=b._hold!='lap'?b._periods:this._calculatePeriods(b,b._show,b.options.significant,new Date());if(b.options.tickInterval==1||this.periodsToSeconds(d)%b.options.tickInterval==0){b.options.onTick.apply(a,[d])}}var e=b._hold!='pause'&&(b._since?b._now.getTime()<b._since.getTime():b._now.getTime()>=b._until.getTime());if(e&&!b._expiring){b._expiring=true;if(this._hasTarget(a)||b.options.alwaysExpire){this._removeTarget(a);if($.isFunction(b.options.onExpiry)){b.options.onExpiry.apply(a,[])}if(b.options.expiryText){var f=b.options.layout;b.options.layout=b.options.expiryText;this._updateCountdown(a,b);b.options.layout=f}if(b.options.expiryUrl){window.location=b.options.expiryUrl}}b._expiring=false}else if(b._hold=='pause'){this._removeTarget(a)}c.data(this.propertyName,b)},_resetExtraLabels:function(a,b){var c=false;for(var n in b){if(n!='whichLabels'&&n.match(/[Ll]abels/)){c=true;break}}if(c){for(var n in a){if(n.match(/[Ll]abels[02-9]/)){a[n]=null}}}},_adjustSettings:function(a,b){var c;var d=0;var e=null;for(var i=0;i<this._serverSyncs.length;i++){if(this._serverSyncs[i][0]==b.options.serverSync){e=this._serverSyncs[i][1];break}}if(e!=null){d=(b.options.serverSync?e:0);c=new Date()}else{var f=($.isFunction(b.options.serverSync)?b.options.serverSync.apply(a,[]):null);c=new Date();d=(f?c.getTime()-f.getTime():0);this._serverSyncs.push([b.options.serverSync,d])}var g=b.options.timezone;g=(g==null?-c.getTimezoneOffset():g);b._since=b.options.since;if(b._since!=null){b._since=this.UTCDate(g,this._determineTime(b._since,null));if(b._since&&d){b._since.setMilliseconds(b._since.getMilliseconds()+d)}}b._until=this.UTCDate(g,this._determineTime(b.options.until,c));if(d){b._until.setMilliseconds(b._until.getMilliseconds()+d)}b._show=this._determineShow(b)},_destroyPlugin:function(a){a=$(a);if(!a.hasClass(this.markerClassName)){return}this._removeTarget(a[0]);a.removeClass(this.markerClassName).empty().removeData(this.propertyName)},_pausePlugin:function(a){this._hold(a,'pause')},_lapPlugin:function(a){this._hold(a,'lap')},_resumePlugin:function(a){this._hold(a,null)},_hold:function(a,b){var c=$.data(a,this.propertyName);if(c){if(c._hold=='pause'&&!b){c._periods=c._savePeriods;var d=(c._since?'-':'+');c[c._since?'_since':'_until']=this._determineTime(d+c._periods[0]+'y'+d+c._periods[1]+'o'+d+c._periods[2]+'w'+d+c._periods[3]+'d'+d+c._periods[4]+'h'+d+c._periods[5]+'m'+d+c._periods[6]+'s');this._addTarget(a)}c._hold=b;c._savePeriods=(b=='pause'?c._periods:null);$.data(a,this.propertyName,c);this._updateCountdown(a,c)}},_getTimesPlugin:function(a){var b=$.data(a,this.propertyName);return(!b?null:(!b._hold?b._periods:this._calculatePeriods(b,b._show,b.options.significant,new Date())))},_determineTime:function(k,l){var m=function(a){var b=new Date();b.setTime(b.getTime()+a*1000);return b};var n=function(a){a=a.toLowerCase();var b=new Date();var c=b.getFullYear();var d=b.getMonth();var e=b.getDate();var f=b.getHours();var g=b.getMinutes();var h=b.getSeconds();var i=/([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g;var j=i.exec(a);while(j){switch(j[2]||'s'){case's':h+=parseInt(j[1],10);break;case'm':g+=parseInt(j[1],10);break;case'h':f+=parseInt(j[1],10);break;case'd':e+=parseInt(j[1],10);break;case'w':e+=parseInt(j[1],10)*7;break;case'o':d+=parseInt(j[1],10);e=Math.min(e,x._getDaysInMonth(c,d));break;case'y':c+=parseInt(j[1],10);e=Math.min(e,x._getDaysInMonth(c,d));break}j=i.exec(a)}return new Date(c,d,e,f,g,h,0)};var o=(k==null?l:(typeof k=='string'?n(k):(typeof k=='number'?m(k):k)));if(o)o.setMilliseconds(0);return o},_getDaysInMonth:function(a,b){return 32-new Date(a,b,32).getDate()},_normalLabels:function(a){return a},_generateHTML:function(c){var d=this;c._periods=(c._hold?c._periods:this._calculatePeriods(c,c._show,c.options.significant,new Date()));var e=false;var f=0;var g=c.options.significant;var h=$.extend({},c._show);for(var i=Y;i<=S;i++){e|=(c._show[i]=='?'&&c._periods[i]>0);h[i]=(c._show[i]=='?'&&!e?null:c._show[i]);f+=(h[i]?1:0);g-=(c._periods[i]>0?1:0)}var j=[false,false,false,false,false,false,false];for(var i=S;i>=Y;i--){if(c._show[i]){if(c._periods[i]){j[i]=true}else{j[i]=g>0;g--}}}var k=(c.options.compact?c.options.compactLabels:c.options.labels);var l=c.options.whichLabels||this._normalLabels;var m=function(a){var b=c.options['compactLabels'+l(c._periods[a])];return(h[a]?d._translateDigits(c,c._periods[a])+(b?b[a]:k[a])+' ':'')};var n=function(a){var b=c.options['labels'+l(c._periods[a])];return((!c.options.significant&&h[a])||(c.options.significant&&j[a])?'<span class="'+x._sectionClass+'">'+'<span class="'+x._amountClass+'">'+d._translateDigits(c,c._periods[a])+'</span><br/>'+(b?b[a]:k[a])+'</span>':'')};return(c.options.layout?this._buildLayout(c,h,c.options.layout,c.options.compact,c.options.significant,j):((c.options.compact?'<span class="'+this._rowClass+' '+this._amountClass+(c._hold?' '+this._holdingClass:'')+'">'+m(Y)+m(O)+m(W)+m(D)+(h[H]?this._minDigits(c,c._periods[H],2):'')+(h[M]?(h[H]?c.options.timeSeparator:'')+this._minDigits(c,c._periods[M],2):'')+(h[S]?(h[H]||h[M]?c.options.timeSeparator:'')+this._minDigits(c,c._periods[S],2):''):'<span class="'+this._rowClass+' '+this._showClass+(c.options.significant||f)+(c._hold?' '+this._holdingClass:'')+'">'+n(Y)+n(O)+n(W)+n(D)+n(H)+n(M)+n(S))+'</span>'+(c.options.description?'<span class="'+this._rowClass+' '+this._descrClass+'">'+c.options.description+'</span>':'')))},_buildLayout:function(c,d,e,f,g,h){var j=c.options[f?'compactLabels':'labels'];var k=c.options.whichLabels||this._normalLabels;var l=function(a){return(c.options[(f?'compactLabels':'labels')+k(c._periods[a])]||j)[a]};var m=function(a,b){return c.options.digits[Math.floor(a/b)%10]};var o={desc:c.options.description,sep:c.options.timeSeparator,yl:l(Y),yn:this._minDigits(c,c._periods[Y],1),ynn:this._minDigits(c,c._periods[Y],2),ynnn:this._minDigits(c,c._periods[Y],3),y1:m(c._periods[Y],1),y10:m(c._periods[Y],10),y100:m(c._periods[Y],100),y1000:m(c._periods[Y],1000),ol:l(O),on:this._minDigits(c,c._periods[O],1),onn:this._minDigits(c,c._periods[O],2),onnn:this._minDigits(c,c._periods[O],3),o1:m(c._periods[O],1),o10:m(c._periods[O],10),o100:m(c._periods[O],100),o1000:m(c._periods[O],1000),wl:l(W),wn:this._minDigits(c,c._periods[W],1),wnn:this._minDigits(c,c._periods[W],2),wnnn:this._minDigits(c,c._periods[W],3),w1:m(c._periods[W],1),w10:m(c._periods[W],10),w100:m(c._periods[W],100),w1000:m(c._periods[W],1000),dl:l(D),dn:this._minDigits(c,c._periods[D],1),dnn:this._minDigits(c,c._periods[D],2),dnnn:this._minDigits(c,c._periods[D],3),d1:m(c._periods[D],1),d10:m(c._periods[D],10),d100:m(c._periods[D],100),d1000:m(c._periods[D],1000),hl:l(H),hn:this._minDigits(c,c._periods[H],1),hnn:this._minDigits(c,c._periods[H],2),hnnn:this._minDigits(c,c._periods[H],3),h1:m(c._periods[H],1),h10:m(c._periods[H],10),h100:m(c._periods[H],100),h1000:m(c._periods[H],1000),ml:l(M),mn:this._minDigits(c,c._periods[M],1),mnn:this._minDigits(c,c._periods[M],2),mnnn:this._minDigits(c,c._periods[M],3),m1:m(c._periods[M],1),m10:m(c._periods[M],10),m100:m(c._periods[M],100),m1000:m(c._periods[M],1000),sl:l(S),sn:this._minDigits(c,c._periods[S],1),snn:this._minDigits(c,c._periods[S],2),snnn:this._minDigits(c,c._periods[S],3),s1:m(c._periods[S],1),s10:m(c._periods[S],10),s100:m(c._periods[S],100),s1000:m(c._periods[S],1000)};var p=e;for(var i=Y;i<=S;i++){var q='yowdhms'.charAt(i);var r=new RegExp('\\{'+q+'<\\}(.*)\\{'+q+'>\\}','g');p=p.replace(r,((!g&&d[i])||(g&&h[i])?'$1':''))}$.each(o,function(n,v){var a=new RegExp('\\{'+n+'\\}','g');p=p.replace(a,v)});return p},_minDigits:function(a,b,c){b=''+b;if(b.length>=c){return this._translateDigits(a,b)}b='0000000000'+b;return this._translateDigits(a,b.substr(b.length-c))},_translateDigits:function(b,c){return(''+c).replace(/[0-9]/g,function(a){return b.options.digits[a]})},_determineShow:function(a){var b=a.options.format;var c=[];c[Y]=(b.match('y')?'?':(b.match('Y')?'!':null));c[O]=(b.match('o')?'?':(b.match('O')?'!':null));c[W]=(b.match('w')?'?':(b.match('W')?'!':null));c[D]=(b.match('d')?'?':(b.match('D')?'!':null));c[H]=(b.match('h')?'?':(b.match('H')?'!':null));c[M]=(b.match('m')?'?':(b.match('M')?'!':null));c[S]=(b.match('s')?'?':(b.match('S')?'!':null));return c},_calculatePeriods:function(c,d,e,f){c._now=f;c._now.setMilliseconds(0);var g=new Date(c._now.getTime());if(c._since){if(f.getTime()<c._since.getTime()){c._now=f=g}else{f=c._since}}else{g.setTime(c._until.getTime());if(f.getTime()>c._until.getTime()){c._now=f=g}}var h=[0,0,0,0,0,0,0];if(d[Y]||d[O]){var i=x._getDaysInMonth(f.getFullYear(),f.getMonth());var j=x._getDaysInMonth(g.getFullYear(),g.getMonth());var k=(g.getDate()==f.getDate()||(g.getDate()>=Math.min(i,j)&&f.getDate()>=Math.min(i,j)));var l=function(a){return(a.getHours()*60+a.getMinutes())*60+a.getSeconds()};var m=Math.max(0,(g.getFullYear()-f.getFullYear())*12+g.getMonth()-f.getMonth()+((g.getDate()<f.getDate()&&!k)||(k&&l(g)<l(f))?-1:0));h[Y]=(d[Y]?Math.floor(m/12):0);h[O]=(d[O]?m-h[Y]*12:0);f=new Date(f.getTime());var n=(f.getDate()==i);var o=x._getDaysInMonth(f.getFullYear()+h[Y],f.getMonth()+h[O]);if(f.getDate()>o){f.setDate(o)}f.setFullYear(f.getFullYear()+h[Y]);f.setMonth(f.getMonth()+h[O]);if(n){f.setDate(o)}}var p=Math.floor((g.getTime()-f.getTime())/1000);var q=function(a,b){h[a]=(d[a]?Math.floor(p/b):0);p-=h[a]*b};q(W,604800);q(D,86400);q(H,3600);q(M,60);q(S,1);if(p>0&&!c._since){var r=[1,12,4.3482,7,24,60,60];var s=S;var t=1;for(var u=S;u>=Y;u--){if(d[u]){if(h[s]>=t){h[s]=0;p=1}if(p>0){h[u]++;p=0;s=u;t=1}}t*=r[u]}}if(e){for(var u=Y;u<=S;u++){if(e&&h[u]){e--}else if(!e){h[u]=0}}}return h}});var w=['getTimes'];function isNotChained(a,b){if(a=='option'&&(b.length==0||(b.length==1&&typeof b[0]=='string'))){return true}return $.inArray(a,w)>-1}$.fn.countdown=function(a){var b=Array.prototype.slice.call(arguments,1);if(isNotChained(a,b)){return x['_'+a+'Plugin'].apply(x,[this[0]].concat(b))}return this.each(function(){if(typeof a=='string'){if(!x['_'+a+'Plugin']){throw'Unknown command: '+a;}x['_'+a+'Plugin'].apply(x,[this].concat(b))}else{x._attachPlugin(this,a||{})}})};var x=$.countdown=new Countdown()})(jQuery);
\ No newline at end of file
diff --git a/src/core/templates/404.html b/src/core/templates/404.html
new file mode 100644 (file)
index 0000000..1189e68
--- /dev/null
@@ -0,0 +1,8 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+<h1>Nie znaleziono strony</h1>
+
+<p>Nie ma tu żadnej strony. Przejdź do <a href='/'>strony głównej</a>.</p>
+
+{% endblock %}
diff --git a/src/core/templates/500.html b/src/core/templates/500.html
new file mode 100644 (file)
index 0000000..5ce19fc
--- /dev/null
@@ -0,0 +1,8 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+<h1>Błąd</h1>
+
+<p>Wystąpił błąd serwera. Przepraszamy!</p>
+
+{% endblock %}
diff --git a/src/core/templates/base.html b/src/core/templates/base.html
new file mode 100644 (file)
index 0000000..132e4f3
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Turniej Elektrybałtów{% block "extratitle" %}{% endblock %}</title>
+    <meta charset="utf-8" />
+
+    <link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
+    <style type="text/css">
+    @import "{{ STATIC_URL }}style.css";
+    </style>
+</head>
+
+<body>
+
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+  var js, fjs = d.getElementsByTagName(s)[0];
+  if (d.getElementById(id)) {return;}
+  js = d.createElement(s); js.id = id;
+  js.src = "//connect.facebook.net/pl_PL/all.js#xfbml=1";
+  fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script src="http://0.s-nk.pl/script/nk_widgets/nk_widget_fajne_embed"></script>
+
+<div id="body">
+{% block "body" %}{% endblock %}
+</div>
+
+
+<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
+  {lang: 'pl'}
+</script>
+{% load piwik_tags %}
+{% tracking_code %}
+</body>
+
+
+</html>
diff --git a/src/core/urls.py b/src/core/urls.py
new file mode 100644 (file)
index 0000000..eafb8c9
--- /dev/null
@@ -0,0 +1,8 @@
+from django.conf.urls import include, url
+
+
+urlpatterns = [
+    url(r'^2011/', include('edition1.urls')),
+    url(r'^poezja/', include('poetry.urls')),
+    url(r'', include('edition2.urls')),
+]
diff --git a/src/core/wsgi.py b/src/core/wsgi.py
new file mode 100644 (file)
index 0000000..b580220
--- /dev/null
@@ -0,0 +1,9 @@
+import os
+
+
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "core.settings")
+
+# This application object is used by the development server
+# as well as any WSGI server configured to use this file.
+from django.core.wsgi import get_wsgi_application
+application = get_wsgi_application()
diff --git a/src/edition1/__init__.py b/src/edition1/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/edition1/static/edition1/bg.png b/src/edition1/static/edition1/bg.png
new file mode 100644 (file)
index 0000000..be7d63a
Binary files /dev/null and b/src/edition1/static/edition1/bg.png differ
diff --git a/src/edition1/static/edition1/style.css b/src/edition1/static/edition1/style.css
new file mode 100644 (file)
index 0000000..0394bce
--- /dev/null
@@ -0,0 +1,167 @@
+html {
+    margin: 0;
+}
+
+body {
+    margin: 0;
+    padding: 0;
+
+    font-size: .75em;
+    font-family: Verdana,Arial,Helvetica,sans-serif;
+}
+
+#body-wrapper {
+    padding: 1em;
+    color: #2F4110;
+    background: url("/static/edition1/bg.png") repeat-x scroll 0 0 #FFFFFF;
+}
+#body {
+    max-width: 900px;
+    margin:auto;
+}
+#new-edition {
+    background: #191919;
+    color: #989898;
+    text-align: center;
+    padding: .8em 0;
+}
+#new-edition a {
+    color: white;
+}
+
+
+
+#content {
+    width: 420px;
+    margin-top: 2em;
+}
+
+
+
+h1 {
+    font: bold 2.2em Arial,sans-serif;
+    padding-top: .7em;
+    margin-bottom: .2em;
+}
+
+
+h2 {
+    font-size: 1.1em;
+    margin:0;
+}
+
+a {
+    color: #295158;
+    text-decoration: none;
+}
+a:hover {
+    border-bottom: 1px dotted;
+}
+
+
+.plain li {
+    list-style: none;
+}
+
+li {
+    margin: 1em;
+}
+
+#termin-wrap {
+    margin-top: 3em;
+}
+
+
+.clr {
+    clear: both;
+}
+
+#footer {
+    border-top: 1px solid #ddd;
+    margin-top: 7em;
+    clear: both;
+    
+}
+#footer img {
+    margin: 30px 13px;
+    vertical-align: middle;
+}
+#footer a:hover {
+    border: none;
+}
+
+
+blockquote {
+    font-size: .9em;
+    font-style: italic;
+    margin-left: 350px;
+    margin-right: 50px;
+    margin-bottom: 4em;
+}
+blockquote p {
+    margin: .5em 0 0 0;
+}
+
+.more {
+    text-align: right;
+}
+
+.uwaga {
+       border: 1px solid #ddd;
+       padding: 1em;
+       background-color: #ff8;
+}
+
+.social {
+    margin-top: 10px;
+    margin-bottom: 10px;
+}
+
+
+.tworz {
+    font-size: 1.5em;
+    padding: .8em;
+    background: #555;
+    color: white;
+    margin: 1em auto;
+    display: block;
+    width: 10em;
+    text-align: center;
+    border: 1px solid #000;
+    border-radius: 1em;
+}
+.tworz:hover {
+    border: 1px solid #000;
+    background: #666;
+}
+
+.last {
+    list-style: none;
+    padding: 0;
+}
+.last li {
+    margin-left: 0;
+}
+
+.poet-list {
+    padding: 0;
+    margin: 1em 0;
+}
+.poet-list li {
+    float: left;
+    width: 30%;
+    list-style: none;
+    padding: .8em 0;
+    border: 1px solid #888;
+    background: #eee;
+    border-radius: 1em;
+    text-align: center;
+}
+.poet-list li:before {
+  content: "» ";
+}
+
+.poet-description {
+    max-width: 60em;
+}
+
diff --git a/src/edition1/templates/edition1/base.html b/src/edition1/templates/edition1/base.html
new file mode 100644 (file)
index 0000000..b851855
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Turniej Elektrybałtów{% block "extratitle" %}{% endblock %}</title>
+    <meta charset="utf-8" />
+
+    <link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
+    <style type="text/css">
+    @import "{{ STATIC_URL }}edition1/style.css";
+    </style>
+</head>
+
+<body>
+
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+  var js, fjs = d.getElementsByTagName(s)[0];
+  if (d.getElementById(id)) {return;}
+  js = d.createElement(s); js.id = id;
+  js.src = "//connect.facebook.net/pl_PL/all.js#xfbml=1";
+  fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script src="http://0.s-nk.pl/script/nk_widgets/nk_widget_fajne_embed"></script>
+
+<div id="body-wrapper">
+<div id="body">
+{% block "body" %}{% endblock %}
+</div>
+</div>
+
+<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
+  {lang: 'pl'}
+</script>
+{% load piwik_tags %}
+{% tracking_code %}
+</body>
+
+
+</html>
diff --git a/src/edition1/templates/edition1/home.html b/src/edition1/templates/edition1/home.html
new file mode 100644 (file)
index 0000000..b2159ae
--- /dev/null
@@ -0,0 +1,107 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+<div style="float:right">
+<img src="{{ STATIC_URL }}img/turniej.png" style='float:right; margin-bottom: 2em;' alt="logo Turnieju Elektrybałtów: frontalny widok maszynki do mielenia mięsa" />
+<h2>Ostatnie wiersze:</h2>
+<ul class="last">
+{% for poem in last %}
+    <li><a href="{{ poem.get_absolute_url }}">{{ poem.poet.name}}, {{ poem.pretty_title }}</a><br/>{{ poem.text|truncatewords:5 }}</li>
+{% endfor %}    
+</ul>
+
+</div>
+
+<div id="content">
+<h1>Turniej Elektrybałtów</h1>
+<h2>Konkurs automatycznej poezji</h2>
+
+<div class="social">
+<span style="position:relative; top: -5px;" >
+    <div class="fb-like" data-href="http://turniej.wolnelektury.pl" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
+</span>
+<g:plusone annotation="bubble" href="http://turniej.wolnelektury.pl"></g:plusone>
+<script>
+  new nk_fajne({
+    url: "http://turniej.wolnelektury.pl",
+    type: 4,
+    color: 0,
+    title: "Turniej Elektrybałtów",
+    image: "http://turniej.wolnelektury.pl/turniej.png",
+    description: "Turniej Elektrybałtów - otwarty konkurs na najlepszego automatycznego poetę."
+  });
+</script>
+</div>
+
+
+<div class="uwaga">
+<p>Konkurs został rozstrzygnięty! Zakończenie odbyło się podczas <a href='http://domenapubliczna.org'>Dnia Domeny Publicznej 2012</a>.</p>
+
+<p>Zwycięzcą został <a href='/poezja/centonista/'><strong>Centonista</strong></a>. Gratulujemy!</p>
+
+<p>Dodatkowo, <a href='/poezja/ala/'>Ała!</a> otrzymał wyróżnienie.</p>
+</div>
+
+<p>Znacie <a href="http://www.wolnelektury.pl/lesmianator/">Leśmianatora</a>?
+To niewielki skrypt miksujący na życzenie wiersze z
+<a href="http://www.wolnelektury.pl">Wolnych Lektur</a>.
+Powstał jako żart, a niechcący
+<a href="http://www.ha.art.pl/felietony/1515-mariusz-pisarski-piekit-siezyca-lesmianator.html">
+„odciął się od dosłownie rozumianego dziedzictwa dadaizmu i surrealizmu”</a>.
+Idziemy dalej – ogłaszamy <strong>otwarty konkurs na najlepszego automatycznego poetę</strong>!</p>
+
+<p>Konkurs wystartował 12 września 2011 roku – z okazji <strong>90 rocznicy urodzin
+Stanisława Lema</strong>. Termin nadsyłania prac upłynął
+10 listopada 2011 roku.
+Prezentujemy nadesłane prace w akcji.
+Kliknij przycisk, a jeden
+z <a href="{% url 'poetry_main' %}">programów-uczestników</a> napisze dla Ciebie wiersz:</p>
+
+<a  style="margin: 1em auto;" class="tworz" href="{% url 'poetry_new' %}">Twórz-że się!</a>
+
+<p><strong>Zobacz <a href="{% url 'poetry_main' %}">wszystkie programy</a>.</strong> Ich kod źródłowy
+<a href="https://github.com/turniej">jest dostępny</a> na wolnej licencji
+– nic więc nie stoi na przeszkodzie, by rozwijać je dalej.</p>
+
+<p>Spośród wygenerowanych przz nas propozycji autorzy programów wybrali po trzy utwory.
+<a href="{% url 'poetry_contest' %}">Zobacz wiersze, które wystartowały w konkursie.</a></p>
+
+<p>Do zabawy zapraszamy wszystkich – i tych, którzy świetnie programują, i tych, którzy
+programować dopiero się uczą. Tych, którzy nie rozstają się z tomikiem
+wierszy, i tych, którzy na ten widok dostają gęsiej skórki. Chcemy wybrać
+program, który będzie w najciekawszy i najbardziej twórczy sposób miksował
+dostępną w Wolnych Lekturach literaturę. W tej konkurencji liczy się przede
+wszystkim wyobraźnia, pomysł i chęć do twórczej zabawy.</p>
+
+<p>Więcej informacji:</p>
+
+<ul class='plain'>
+    <li><a href='wiecej/'>Przebieg konkursu</a> – czyli jakie będą kolejne etapy
+    i co jest nagrodą?</li>
+
+    <li><a href='technikalia/'>Technikalia</a> – czyli co i jak trzeba zrobić,
+    żeby wziąć udział.</li>
+
+    <li><a href='regulamin/'>Regulamin</a> – czyli trochę koniecznych formalności.</li>
+</ul>
+
+<p>Wszelkiego rodzaju pytania i wątpliwości proszę kierować na adres
+<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;">&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;</a></p>
+
+<div class='clr'></div>
+</div>
+
+
+<div id="footer">
+<a target='_blank' href='http://nowoczesnapolska.org.pl'><img src='{{ STATIC_URL }}img/fnp.png' alt='Fundacja Nowoczesna Polska' title='Fundacja Nowoczesna Polska' /></a>
+<a target='_blank' href='http://www.wolnelektury.pl'><img src='{{ STATIC_URL }}img/wl.png' alt='Wolne Lektury' title='Wolne Lektury' /></a>
+<a target='_blank' href='http://koed.org.pl'><img src='{{ STATIC_URL }}img/koed.png' alt='Koalicja Otwartej Edukacji' title='Koalicja Otwartej Edukacji' /></a>
+<a target='_blank' href='http://centrumcyfrowe.pl'><img src='{{ STATIC_URL }}img/cc.png' alt='Centrum Cyfrowe' title='Centrum Cyfrowe' /></a>
+<a target='_blank' href='http://di.com.pl'><img src='{{ STATIC_URL }}img/di.png' alt='Dziennik Internautów' title='Dziennik Internautów' /></a>
+<a target='_blank' href='http://solaris.lem.pl'><img src='{{ STATIC_URL }}img/lempl.png' alt='Lem.pl' title='Lem.pl' /></a>
+
+</div>
+
+
+{% endblock %}
diff --git a/src/edition1/templates/edition1/more.html b/src/edition1/templates/edition1/more.html
new file mode 100644 (file)
index 0000000..1a2ca05
--- /dev/null
@@ -0,0 +1,65 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+<h1>
+<a href='/'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
+Turniej Elektrybałtów</h1>
+<h2>
+Konkurs automatycznej poezji</h2>
+
+<blockquote>
+    <p>Gdy wskaźniki amplifikacyjne pokazały, że moc liryczna dochodzi
+    do maksimum, Trurl nieznacznie tylko drżącą ręką przerzucił wielki
+    wyłącznik i niemal natychmiast głosem lekko ochrypłym, lecz emanującym
+    dziwnie sugestywnym czarem, maszyna rzekła:</p>
+
+    <p>– Chrzęskrzyboczek pacionkociewiczarokrzysztofoniczmy.</p>
+    <p>– Czy to już wszystko? – spytał po dłuższej chwili niezwykle uprzejmy
+    Klapaucjusz.</p>
+    <p>(Stanisław Lem, „Cyberiada”, „Wyprawa pierwsza A, czyli Elektrybałt Trurla”)</p>
+</blockquote>
+
+
+
+<p>Konkurs startuje 12 września 2011 roku – z okazji <strong>90 rocznicy urodzin
+Stanisława Lema</strong>. Termin nadsyłania prac upływa <del>z końcem października</del> <ins>10 listopada</ins> 2011 roku.
+Powinno być dość czasu na dopracowanie swoich pomysłów.</p>
+
+<p>Konkurs będzie wyglądał następująco:</p>
+
+<ul>
+    <li>Do <del>końca października</del> <ins>10 listopada</ins> czekamy na zgłoszenia w postaci programów.
+    Warunkiem dopuszczalności jest udostępnienie kodu źródłowego na wolnej
+    licencji <a href="http://www.gnu.org/licenses/agpl.html">GNU AGPL</a>
+    (<a href="http://www.gnu.org/licenses/gpl-howto.pl.html">jak to zrobić?)</a>.
+    Szerzej o tym, czym powinno być złoszenie –
+    w dziale <a href='../technikalia/'>Technikalia</a>.</li>
+
+    <li>Użycie wolnej licencji nie oznacza, że kod źródłowy musi być
+    od razu publicznie dostępny. Programy zostaną przez nas
+    upublicznione – ale dopiero po upłynięciu terminu nadsyłania zgłoszeń.
+    Uczestnik może oczywiście samodzielnie upublicznić swoje zgłoszenie
+    wcześniej – odradzamy to jednak ze względu na komplikacje w przypadku
+    plagiatu.</li>
+
+    <li>Po uruchomieniu nadesłanych przez uczestników programów dla każdego
+    uczestnika wygenerujemy <strong>20</strong> wierszy, które odeślemy autorowi
+    programu. Wybierze on <strong>3</strong> z nich, które następnie zostaną
+    poddane ocenie jury. W składzie jury znajdą się zarówno osoby związane
+    z programowaniem, jak i przedstawiciele świata kultury.</li>
+
+    <li>Główną nagrodą jest 16-tomowa kolekcja książek Stanisława Lema.
+    W ramach dodatkowej nagrody podczas zakończenia konkursu
+    odbędzie się próba odczytania zwycięskich wierszy na głos.</li>
+
+</ul>
+
+<p>Programy biorące udział w konkursie zostaną też uruchomione
+<a href="http://turniej.wolnelektury.pl">na stronie Turnieju</a> –
+internauci będą więc mieli możliwość samodzielnego „wyklikania” sobie własnego
+wiersza przy użyciu każdego z nich.</p>
+
+<p class='more'><a href="..">Powrót do strony głównej</a></p>
+
+{% endblock %}
diff --git a/src/edition1/templates/edition1/rules.html b/src/edition1/templates/edition1/rules.html
new file mode 100644 (file)
index 0000000..00187cc
--- /dev/null
@@ -0,0 +1,74 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+
+<h1>
+<a href='..'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
+Turniej Elektrybałtów</h1>
+<h2>Konkurs automatycznej poezji</h2>
+
+<blockquote>
+    <p>Ustaliwszy, w czym rzecz, zwierzchność żeglugi kosmicznej zwróciła się
+    oficjalnie do Trurla z żądaniem natychmiastowej likwidacji należącego doń
+    urządzenia, które zakłócało liryką spokój publiczny i zagrażało zdrowiu
+    pasażerów.</p>
+
+    <p>(Stanisław Lem, „Cyberiada”, „Wyprawa pierwsza A, czyli Elektrybałt Trurla”)</p>
+</blockquote>
+
+
+
+<h3>Regulamin konkursu</h3>
+
+
+
+
+<ul>
+    <li>Organizatorem konkursu jest fundacja Nowoczesna Polska. </li>
+
+    <li>Przedmiotem konkursu jest program komputerowy tworzący remiksy literackie
+    na podstawie utworów znajdujących się w bilbiotece internetowej Wolne Lektury.
+    Program biorący udział w konkursie musi być udostępniony na wolnej
+    licencji <a href="http://www.gnu.org/licenses/agpl.html">GNU AGPL</a>
+    (<a href="http://www.gnu.org/licenses/gpl-howto.pl.html">jak to zrobić?)</a>.</li>
+
+    <li>Konkurs trwa od 12 września do <del>31 października</del> <ins>10 listopada</ins> 2011 roku.
+    Konkurs ma charakter otwarty. Aby wziąć w nim udział udział,
+    należy wysłać gotowy program na adres
+    <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;">&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;</a>
+
+    z klauzulą: 
+    <cite>Zgłaszam się do konkursu „Turniej Elektrybałtów” i oświadczam, że
+    znam i akceptuję jego regulamin</cite>.</li>
+
+    <li>Nagrodą główną jest 16-tomowa kolekcja dzieł Stanisława Lema. Nie ma
+    możliwości zamiany nagrody na jej równowartość pieniężną.</li>
+
+    <li>Organizator może odwołać konkurs w każdym czasie, bez podawania
+    przyczyny. W takim przypadku uczestnikom konkursu nie przysługuje żadna
+    rekompensata. Uczestnicy zgłaszając swój udział w konkursie automatycznie
+    wyrażają zgodę na publikację ich twórczości w internecie oraz wyrażają
+    zgodę na wykorzystanie wizerunku w materiałach promocyjnych konkursu
+    oraz materiałach promocyjnych Fundacji Nowoczesna Polska.</li>
+
+    <li>Organizator zastrzega sobie prawo do odrzucenia zgłoszenia programu,
+    którego działanie może zagrażać stabilności, responsywności albo bezpieczeństwu
+    serwera, a także takich, których poprawne uruchomienie okaże się niemożliwe
+    lub poważnie utrudnione.</li>
+
+    <li>Organizator konkursu nie ponosi odpowiedzialności za wszelkie
+    roszczenia osób trzecich wynikające z tytułu wykorzystania materiałów
+    zgłoszonych przez uczestników konkursu jako własnych. Prace naruszające
+    prawa autorskie będą dyskwalifikowane.</li>
+
+    <li>Organizator zatrzega sobie prawo wprowadzenia zmian w regulaminie
+    konkursu.</li>
+</ul>
+
+
+
+
+<p class='more'><a href="..">Powrót do strony głównej</a></p>
+
+{% endblock %}
diff --git a/src/edition1/templates/edition1/technical.html b/src/edition1/templates/edition1/technical.html
new file mode 100644 (file)
index 0000000..ada8028
--- /dev/null
@@ -0,0 +1,115 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+<h1>
+<a href='..'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
+Turniej Elektrybałtów</h1>
+<h2>Konkurs automatycznej poezji</h2>
+
+<blockquote>
+    <p>Gdy atoli, z lekka kulejąc, zbliżył się do maszyny, ta,
+    na widok obcęgów w jego dłoni i błysków desperacji w oku, buchnęła taką
+    namiętną liryką błagając o łaskę, że rozszlochany Trurl cisnął narzędzia
+    i wrócił do siebie, brnąc po kolana w nowych utworach elektroducha, które
+    sięgały mu do pół piersi, zaścielając szemrzącym oceanem papieru całą halę.</p>
+
+    <p>(Stanisław Lem, „Cyberiada”, „Wyprawa pierwsza A, czyli Elektrybałt Trurla”)</p>
+</blockquote>
+
+
+
+<h3>Wymogi wobec zgłaszanych programów</h3>
+
+<ul>
+    <li>Nie nakładamy ograniczeń na wybór języka programowania. Program
+    powinien dać się jednak uruchomić w środowisku GNU/Linux przy użyciu
+    wolnodostępnych narzędzi.</li>
+
+    <li>Warunkiem dopuszczalności jest udostępnienie kodu źródłowego na wolnej
+    licencji <a href="http://www.gnu.org/licenses/agpl.html">GNU AGPL</a>
+
+    (<a href="http://www.gnu.org/licenses/gpl-howto.pl.html">jak to zrobić?)</a>
+    Programy zostaną upublicznione – ale dopiero po upłynięciu terminu
+    nadsyłania zgłoszeń. Warunek ten oznacza w szczególności, że zgłoszenie
+    musi zawierać kod źródłowy. Nie wchodzą w grę żadne skompilowane, pośrednie,
+    zaciemnione wersje – kod powinien zostać udostępniony w takiej postaci,
+    nad jaką normalnie pracuje programista.</li>
+
+    <li>Program przy tworzeniu wierszy musi w istotny sposób korzystać
+    z zasobów Wolnych Lektur. Elementy wynikowych tekstów nie mogą być
+    zaszyte w treści samego programu. Program nie może też korzystać
+    podczas pracy z innych źródeł informacji – musi być jasne, że program
+    <em>naprawdę</em> miksuje dostarczoną mu literaturę, a nie odtwarza nagraną
+    uprzednio taśmę. Nie jest wymagane korzystanie z wszystkich utworów –
+    program może miksować np. tylko poezję romantyczną albo tylko fragmenty
+    oznaczone wybranymi motywami literackimi.</li>
+
+    <li>Generowanie wiersza nie powinno trwać więcej niż kilka sekund.
+    W ramach procesu instalacji programu dopuszczalne (i wskazane!) jest
+    natomiast uprzednie zgromadzenie niezbędnych informacji wynikających
+    z analizy tekstów źródłowych. Najlepiej więc dostarczyć dwa programy
+    (albo jeden z różnymi opcjami uruchomienia) – jeden pobierający utwory,
+    analizujący je i zapisujący efekty tej analizy, a drugi generujący
+    wiersze na podstawie zgromadzonej uprzednio informacji. Sądzimy, że
+    ok. 10MiB powinno wystarczyć każdemu
+    <a href="http://en.wikiquote.org/wiki/Talk:Bill_Gates#640K.2F1MB">[sic!]</a>,
+    ale w razie potrzeby będziemy się starali być elastyczni.</li>
+
+    <li>Program powinien wypisać wiersz na standardowe wyjście w postaci
+    czystego tekstu, najlepiej używając kodowania UTF-8 (czyli tego samego,
+    które jest używane w plikach źródłowych).</li>
+
+    <li>Maksymalna długość wiersza wynosi 1000 znaków – dalsze znaki zostaną
+    odcięte. Poza tym ograniczeniem długość i forma wiersza pozostaje w gestii
+    autora i jego programu.</li>
+
+    <li>Odrzucone zostana programy, które będą usiłowały w jakikolwiek
+    sposób zagrozić stabilności lub bezpieczeństwu serwera.</li>
+</ul>
+
+
+<h3>W jaki sposób pobierać utwory?</h3>
+
+<p>Źródłowe utwory można pobierać na kilka sposobów:</p>
+
+<ul>
+    <li>Korzystając z <a href="http://www.wolnelektury.pl/api/">API Wolnych Lektur</a>.</li>
+
+    <li>Pobierając <a href="http://www.wolnelektury.pl/media/packs/xml-all.zip">
+    paczkę źródłowych plików XML</a> i pracując z nimi bądź to samodzielnie,
+    bądź korzystając
+    z <a href="https://github.com/fnp/librarian">narzędzi stworzonych na potrzeby Wolnych Lektur</a>.</li>
+
+    <li>Pobierając paczkę plików tekstowych. Przygotowaliśmy do wyboru dwie:
+    <a href="http://www.wolnelektury.pl/media/packs/txt-all.zip">ze wszystkimi utworami</a>
+    oraz <a href="http://www.wolnelektury.pl/media/packs/txt-liryka.zip">tylko z liryką</a>.</li>
+</ul>
+
+<p>Wszystkie pliki źródłowe są zapisane przy użyciu kodowania UTF-8.</p>
+
+<p>Przykładowy program (napisany w Pythonie), obrazujący wykorzystanie
+każdego z tych sposobów, można znaleźć
+<a href="https://github.com/fnp/lesmianator">w naszym repozytorium na GitHubie</a>.
+Jest to po prostu Leśmianator – w wersji przygotowanej zgodnie z warunkami
+turnieju.</p>
+
+
+<h3>Gdzie wysyłać zgłoszenia?</h3>
+
+<p>Zgłoszenia, a także wszelkiego rodzaju pytania i wątpliwości prosimy kierować na adres
+<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;">&#114;&#97;&#100;&#111;&#115;&#108;&#97;&#119;&#46;&#99;&#122;&#97;&#106;&#107;&#97;&#64;&#110;&#111;&#119;&#111;&#99;&#122;&#101;&#115;&#110;&#97;&#112;&#111;&#108;&#115;&#107;&#97;&#46;&#111;&#114;&#103;&#46;&#112;&#108;</a>.
+Prosimy też o dołączenie do każdego zgłoszenia klauzuli o treści:
+<cite>Zgłaszam się do konkursu „Turniej Elektrybałtów” i oświadczam, że
+znam i akceptuję jego <a href="{% url 'e1_rules_page' %}">regulamin</a></cite>.
+
+</p>
+
+
+
+
+<p class='more'><a href="{% url 'e1_main_page' %}">Powrót do strony głównej</a></p>
+
+
+{% endblock %}
+    
diff --git a/src/edition1/urls.py b/src/edition1/urls.py
new file mode 100644 (file)
index 0000000..76dadd5
--- /dev/null
@@ -0,0 +1,14 @@
+from django.conf.urls import url
+from django.views.generic import TemplateView
+from . import views
+
+
+urlpatterns = [
+    url(r'^$', views.home, name='e1_main_page'),
+    url(r'^regulamin/$', TemplateView.as_view(template_name='edition1/rules.html'),
+        name='e1_rules_page'),
+    url(r'^wiecej/$', TemplateView.as_view(template_name='edition1/more.html'),
+        name='e1_more_page'),
+    url(r'^technikalia/$', TemplateView.as_view(template_name='edition1/technical.html'),
+        name='e1_technical_page'),
+]
diff --git a/src/edition1/views.py b/src/edition1/views.py
new file mode 100644 (file)
index 0000000..6d35feb
--- /dev/null
@@ -0,0 +1,6 @@
+from django.shortcuts import render
+from poetry.models import Poem
+
+def home(request):
+    last = Poem.objects.all().order_by('-created_at')[:10]
+    return render(request, "edition1/home.html", locals())
diff --git a/src/edition2/__init__.py b/src/edition2/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/edition2/static/edition2/style.css b/src/edition2/static/edition2/style.css
new file mode 100644 (file)
index 0000000..4bee9cf
--- /dev/null
@@ -0,0 +1,112 @@
+html {
+    margin: 0;
+}
+
+body {
+    margin: 0;
+    padding: 0;
+
+    background: #191919;
+    color: #989898;
+
+    font-family: Georgia,serif;
+}
+
+#body-wrapper {
+    color: black;
+    background: #F7F7F7;
+    padding-bottom: 3em;
+}
+#body {
+    max-width: 900px;
+    margin:auto;
+    padding: 1em;
+}
+
+
+#content {
+    width: 480px;
+}
+
+
+
+h1 {
+    font: bold 2.2em Georgia,serif;
+    margin-bottom: .2em;
+}
+
+
+h2 {
+    font-size: 1.1em;
+    margin:0;
+}
+
+a {
+    color: #0D777E;
+    text-decoration: none;
+}
+a:hover {
+    border-bottom: 1px dotted;
+}
+
+
+.plain li {
+    list-style: none;
+}
+
+li {
+    margin: 1em;
+}
+
+#termin-wrap {
+    margin-top: 3em;
+}
+
+
+.clr {
+    clear: both;
+}
+
+footer {
+    background: #191919;
+    color: #989898;
+    margin: 0 auto 0 auto;
+    padding: 1em;
+    clear: both;
+    text-align: center;
+}
+footer img {
+    margin: 0 20px;
+    vertical-align: middle;
+}
+footer a:hover {
+    border: none;
+}
+
+
+blockquote {
+    font-size: .9em;
+    font-style: italic;
+    margin-left: 350px;
+    margin-right: 50px;
+    margin-bottom: 4em;
+}
+blockquote p {
+    margin: .5em 0 0 0;
+}
+
+.more {
+    text-align: right;
+}
+
+.uwaga {
+       border: 1px solid #ddd;
+       padding: 0 1em;
+    margin: 1em 0;
+    background: white;
+    box-shadow: 2px 2px 2px #DDDDDD;
+}
+
+.social {
+    margin: .5em 0 2em 0;
+}
\ No newline at end of file
diff --git a/src/edition2/templates/edition2/base.html b/src/edition2/templates/edition2/base.html
new file mode 100644 (file)
index 0000000..fbb7a81
--- /dev/null
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Turniej Wolnych Lektur{% block "extratitle" %}{% endblock %}</title>
+    <meta charset="utf-8" />
+
+    <link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
+    <style type="text/css">
+    @import "{{ STATIC_URL }}edition2/style.css";
+    @import "{{ STATIC_URL }}js/jquery.countdown.css";
+    </style>
+</head>
+
+<body>
+
+<div id="body-wrapper">
+<div id="body">
+{% block "body" %}{% endblock %}
+</div>
+</div>
+
+<footer>
+<a href='http://nowoczesnapolska.org.pl'><img src='{{ STATIC_URL }}img/fnp_black.png' alt='Fundacja Nowoczesna Polska' title='Fundacja Nowoczesna Polska' /></a>
+<a href='http://wolnelektury.pl'><img src='{{ STATIC_URL }}img/wl_black.png' alt='Wolne Lektury' title='Wolne Lektury' /></a>
+</footer>
+
+{% load piwik_tags %}
+{% tracking_code %}
+</body>
+
+
+</html>
diff --git a/src/edition2/templates/edition2/home.html b/src/edition2/templates/edition2/home.html
new file mode 100644 (file)
index 0000000..dcac65d
--- /dev/null
@@ -0,0 +1,31 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+
+<div style="float:right">
+<img src="{{ STATIC_URL }}img/turniej.png" style='float:right; margin-bottom: 2em;' alt="logo Turnieju Elektrybałtów: frontalny widok maszynki do mielenia mięsa" />
+</div>
+
+<div id="content">
+<h1>II Turniej Wolnych Lektur</h1>
+<h2>Edycja wizualna</h2>
+<p class="social">
+    {% load fnp_share %}
+    {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
+</p>
+
+<div class="uwaga">
+<p>Zdecydowaliśmy się nie rozstrzygać II edycji Turnieju Wolnych Lektur
+ze względu na niewystarczającą liczbę i poziom zgłoszeń.</p>
+
+<p>Zobacz wyniki pierwszej edycji – <a href="{% url 'e1_main_page' %}">Turnieju Elektrybałtów</a>.</p>
+</div>
+
+<p>Wszelkie pytania i wątpliwości proszę kierować na adres
+<a href="mailto:turniej@nowoczesnapolska.org.pl">turniej@nowoczesnapolska.org.pl</a></p>
+
+<div class='clr'></div>
+</div>
+
+
+{% endblock %}
diff --git a/src/edition2/templates/edition2/more.html b/src/edition2/templates/edition2/more.html
new file mode 100644 (file)
index 0000000..85a6689
--- /dev/null
@@ -0,0 +1,43 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+
+<h1>
+    <a href='{% url "e2_main_page" %}' style="float:left;">
+        <img src="{{ STATIC_URL }}img/turniej-maly.png"
+        style='margin-right: .5em;' /></a>
+    II Turniej Wolnych Lektur</h1>
+<h2>Edycja wizualna</h2>
+<p class="social">
+    {% load fnp_share %}
+    {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
+</p>
+
+
+
+
+<p>Konkurs startuje 4 stycznia 2013 roku. Termin nadsyłania prac upływa <del>15</del> <ins>22</ins> lutego 2013 roku.
+Powinno być dość czasu na dopracowanie swoich pomysłów.</p>
+
+<h3>Przebieg konkursu:</h3>
+
+<ol>
+    <li>Konkurs startuje 4 stycznia 2013 roku.</li>
+    <li>Termin nadsyłania prac upływa <strong><del>15</del> <ins>22</ins> lutego</strong> 2013 roku.</li>
+    <li>Warunkiem dopuszczenia do konkursu jest udostępnienie swojego zgłoszenia
+    (w przypadku zgłoszenia programu – kodu źródłowego) na
+    <a href="http://freedomdefined.org/Licenses">wolnej licencji</a>.
+    Informacje o tym, jak to zrobić, znajdują się np. na stronach
+    <a href="http://www.gnu.org/licenses/gpl-howto.pl.html">projektu GNU</a>
+    czy <a href="http://creativecommons.org/choose/">Creative Commons</a>.</li>
+    <li>Zgłoszenia zostaną udostępnione publicznie na stronie konkursu po
+    zamknięciu etapu zgłoszeń. Autorzy nie muszą (choć oczywiście mogą)
+    upubliczniać ich wcześniej.</li>
+    <li>Do końca lutego jury konkursowe wybierze zwyciązcę konkursu.</li>
+    <li>Główną nagrodą jest czytnik e-booków Amazon Kindle z kompletem
+    książek z <a href="http://wolnelektury.pl">Wolnych Lektur</a> w formacie MOBI.</li>
+</ol>
+
+<p class='more'><a href="..">Powrót do strony głównej</a></p>
+
+{% endblock %}
diff --git a/src/edition2/templates/edition2/rules.html b/src/edition2/templates/edition2/rules.html
new file mode 100644 (file)
index 0000000..cb3a692
--- /dev/null
@@ -0,0 +1,70 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+
+
+<h1>
+    <a href='{% url "e2_main_page" %}' style="float:left;">
+        <img src="{{ STATIC_URL }}img/turniej-maly.png"
+        style='margin-right: .5em;' /></a>
+    II Turniej Wolnych Lektur</h1>
+<h2>Edycja wizualna</h2>
+<p class="social">
+    {% load fnp_share %}
+    {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
+</p>
+
+
+
+
+<h3>Regulamin konkursu</h3>
+
+
+<ol>
+    <li>Organizatorem konkursu jest fundacja Nowoczesna Polska. </li>
+
+    <li>Przedmiotem konkursu jest wizualizacja oparta na Wolnych Lekturach.
+    Wszystkie zgłoszenia (w przypadku programów – ich kod źródłowy) biorące
+    udział w konkursie muszą być udostępnione na
+    <a href="http://freedomdefined.org/Licenses">wolnej licencji</a>.
+    Wizualizacje muszą być dostępne
+    w <a href="http://pl.wikipedia.org/wiki/Format_otwarty">otwartym formacie</a>.</li>
+
+    <li>Konkurs trwa od 4 stycznia do <del>15</del> <ins>22</ins> lutego 2013 roku i ma charakter otwarty.
+    Jedna osoba może wysłać więcej niż jedno zgłoszenie.
+    Aby wziąć udział udział w konkursie, należy wysłać swoje zgłoszenie na adres
+    <a href="mailto:turniej@nowoczesnapolska.org.pl">turniej@nowoczesnapolska.org.pl</a>
+    z klauzulą: 
+    <cite>Zgłaszam się do konkursu „II Turniej Wolnych Lektur” i oświadczam, że
+    znam i akceptuję jego regulamin</cite>.</li>
+
+    <li>Nagrodą główną jest czytnik Amazon Kindle z kompletem książek
+    z Wolnych Lektur w formacie MOBI. Nie ma możliwości zamiany nagrody na jej
+    równowartość pieniężną.</li>
+
+    <li>Organizator może odwołać konkurs w każdym czasie, bez podawania
+    przyczyny. W takim przypadku uczestnikom konkursu nie przysługuje żadna
+    rekompensata. Uczestnicy zgłaszając swój udział w konkursie automatycznie
+    wyrażają zgodę na wykorzystanie ich wizerunku w materiałach promocyjnych
+    konkursu oraz materiałach promocyjnych fundacji Nowoczesna Polska.</li>
+
+    <li>Organizator zastrzega sobie prawo do odrzucenia zgłoszenia, którego
+    udostępnienie na stronie konkursu mogłoby zagrażać stabilności, responsywności
+    albo bezpieczeństwu serwera albo oprogramowania użytkownika, a także takich,
+    których poprawne uruchomienie okaże się niemożliwe lub poważnie utrudnione.</li>
+
+    <li>Organizator konkursu nie ponosi odpowiedzialności za wszelkie
+    roszczenia osób trzecich wynikające z tytułu wykorzystania materiałów
+    zgłoszonych przez uczestników konkursu jako własnych. Prace naruszające
+    prawa autorskie będą dyskwalifikowane.</li>
+
+    <li>Organizator zatrzega sobie prawo wprowadzenia zmian w regulaminie
+    konkursu.</li>
+</ul>
+
+
+
+
+<p class='more'><a href="..">Powrót do strony głównej</a></p>
+
+{% endblock %}
diff --git a/src/edition2/templates/edition2/technical.html b/src/edition2/templates/edition2/technical.html
new file mode 100644 (file)
index 0000000..bb55b09
--- /dev/null
@@ -0,0 +1,61 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+
+
+<h1>
+    <a href='{% url "e2_main_page" %}' style="float:left;">
+        <img src="{{ STATIC_URL }}img/turniej-maly.png"
+        style='margin-right: .5em;' /></a>
+    II Turniej Wolnych Lektur</h1>
+<h2>Edycja wizualna</h2>
+<p class="social">
+    {% load fnp_share %}
+    {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
+</p>
+
+
+<h3>Wymogi techniczne wobec zgłoszeń</h3>
+
+<ul>
+    <li>Format wizualizacji powinien być otwarty. Jeśli zgłoszenie zawiera
+    oprogramowanie, powinno dać się ono uruchomić w środowisku GNU/Linux
+    przy użyciu wolnodostępnych narzędzi.</li>
+
+    <li>Warunkiem dopuszczenia do konkursu jest udostępnienie swojego zgłoszenia
+    (w przypadku zgłoszenia programu – jego kodu źródłowego) na
+    <a href="http://freedomdefined.org/Licenses">wolnej licencji</a>.
+    Informacje o tym, jak to zrobić, znajdują się np. na stronach
+    <a href="http://www.gnu.org/licenses/gpl-howto.pl.html">projektu GNU</a>
+    czy <a href="http://creativecommons.org/choose/">Creative Commons</a>.</li>
+
+    <li>Wizualizacja powinna dotyczyć zasobów
+    <a href="http://wolnelektury.pl">Wolnych Lektur</a>. 
+    Nie jest wymagane wykorzystanie całości tych zasobów – można pokazać np.
+    tylko wybrany utwór. Można też poddać dane uprzedniej obróbce.
+    Za przykład niech posłuży <a href="http://teatr.wolnelektury.pl">prosty teatrzyk</a>
+    na podstawie pliku XML wyświetlający „Romea i Julię” w postaci animacji SVG.</li>
+
+    <li>Odrzucone zostaną zgłoszenia, które będą usiłowały w jakikolwiek
+    sposób zagrozić stabilności lub bezpieczeństwu serwera albo użytkownika.</li>
+</ul>
+
+
+<h3>Gdzie wysyłać zgłoszenia?</h3>
+
+<p>Zgłoszenia, a także wszelkiego rodzaju pytania i wątpliwości prosimy kierować na adres
+<a href="mailto:turniej@nowoczesnapolska.org.pl">turniej@nowoczesnapolska.org.pl</a>.
+Prosimy też o dołączenie do każdego zgłoszenia klauzuli o treści:
+<cite>Zgłaszam się do konkursu „II Turniej Wolnych Lektur” i&nbsp;oświadczam, że
+    znam i akceptuję jego <a href="{% url 'e2_rules_page' %}">regulamin</a></cite>.
+
+</p>
+
+
+
+
+<p class='more'><a href="{% url 'e2_main_page' %}">Powrót do strony głównej</a></p>
+
+
+{% endblock %}
+    
diff --git a/src/edition2/urls.py b/src/edition2/urls.py
new file mode 100755 (executable)
index 0000000..0cb0f57
--- /dev/null
@@ -0,0 +1,13 @@
+from django.conf.urls import url
+from django.views.generic import TemplateView
+
+urlpatterns = [
+    url(r'^$', TemplateView.as_view(template_name='edition2/home.html'),
+        name='e2_main_page'),
+    url(r'^regulamin/$', TemplateView.as_view(template_name='edition2/rules.html'),
+        name='e2_rules_page'),
+    url(r'^wiecej/$', TemplateView.as_view(template_name='edition2/more.html'),
+        name='e2_more_page'),
+    url(r'^technikalia/$', TemplateView.as_view(template_name='edition2/technical.html'),
+        name='e2_technical_page'),
+]
diff --git a/src/manage.py b/src/manage.py
new file mode 100755 (executable)
index 0000000..06d0ce2
--- /dev/null
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+import os
+import sys
+
+
+if __name__ == "__main__":
+    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "core.settings")
+
+    from django.core.management import execute_from_command_line
+
+    execute_from_command_line(sys.argv)
diff --git a/src/poetry/__init__.py b/src/poetry/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/poetry/migrations/0001_initial.py b/src/poetry/migrations/0001_initial.py
new file mode 100644 (file)
index 0000000..81c630c
--- /dev/null
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Poem',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
+                ('slug', models.SlugField()),
+                ('title', models.CharField(null=True, max_length=255, blank=True)),
+                ('text', models.TextField()),
+                ('created_at', models.DateTimeField(db_index=True, auto_now_add=True)),
+                ('seen_at', models.DateTimeField(auto_now_add=True)),
+                ('view_count', models.IntegerField(default=1)),
+                ('for_contest', models.BooleanField(default=False)),
+                ('in_contest', models.BooleanField(default=False)),
+            ],
+            options={
+            },
+            bases=(models.Model,),
+        ),
+        migrations.CreateModel(
+            name='Poet',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
+                ('name', models.CharField(max_length=50)),
+                ('path', models.CharField(max_length=255)),
+                ('slug', models.SlugField(unique=True)),
+                ('author', models.CharField(max_length=128, blank=True)),
+                ('url', models.CharField(max_length=255, blank=True)),
+                ('description', models.TextField(blank=True)),
+                ('first_line_title', models.BooleanField(default=False)),
+                ('skip_first_lines', models.IntegerField(default=0)),
+            ],
+            options={
+            },
+            bases=(models.Model,),
+        ),
+        migrations.AddField(
+            model_name='poem',
+            name='poet',
+            field=models.ForeignKey(to='poetry.Poet', on_delete=models.CASCADE),
+            preserve_default=True,
+        ),
+    ]
diff --git a/src/poetry/migrations/__init__.py b/src/poetry/migrations/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/src/poetry/models.py b/src/poetry/models.py
new file mode 100644 (file)
index 0000000..58b8caf
--- /dev/null
@@ -0,0 +1,85 @@
+import os
+import subprocess
+from django.db import models
+from django.urls import reverse
+from django.conf import settings
+from poetry.utils import get_hash
+
+
+class Poet(models.Model):
+    name = models.CharField(max_length=50)
+    path = models.CharField(max_length=255)
+    slug = models.SlugField(max_length=50, unique=True, db_index=True)
+    author = models.CharField(max_length=128, blank=True)
+    url = models.CharField(max_length=255, blank=True)
+    description = models.TextField(blank=True)
+    first_line_title = models.BooleanField(default=False)
+    skip_first_lines = models.IntegerField(default=0)
+
+    def __str__(self):
+        return self.name
+
+    def get_absolute_url(self):
+        return reverse('poetry_poet', kwargs={'slug': self.slug})
+
+    def write(self):
+        curdir = os.getcwd()
+        os.chdir(os.path.dirname(self.path))
+        proc = subprocess.Popen(self.path,
+            stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+        os.chdir(curdir)
+        stdout, stderr = proc.communicate()
+        text = str(stdout, "utf-8", errors="ignore")[:1000]
+        slug = get_hash(text)
+        title = ''
+        if self.first_line_title:
+            title, text = text.split('\n', 1)
+        if self.skip_first_lines:
+            text = text.split('\n', self.skip_first_lines)[-1]
+        text = text.strip('\n')
+        poem = self.poem_set.create(
+            slug=slug,
+            text=text,
+            title=title
+            )
+        return poem
+
+    def make_for_contest(self):
+        assert not self.poem_set.filter(for_contest=True).exists()
+        for i in range(settings.POETRY_POEMS_FOR_CONTEST):
+            p = self.write()
+            p.for_contest = True
+            p.save()
+        return self.poem_set.filter(for_contest=True)
+
+    def contest_poems(self):
+        return self.poem_set.filter(in_contest=True)
+
+
+class Poem(models.Model):
+    slug = models.SlugField(max_length=50, db_index=True)
+    title = models.CharField(max_length=255, null=True, blank=True)
+    text = models.TextField()
+    poet = models.ForeignKey(Poet, on_delete=models.CASCADE)
+    created_at = models.DateTimeField(auto_now_add=True, editable=False, db_index=True)
+    seen_at = models.DateTimeField(auto_now_add=True, editable=False)
+    view_count = models.IntegerField(default=1)
+
+    for_contest = models.BooleanField(default=False)
+    in_contest = models.BooleanField(default=False)
+
+    def __str__(self):
+        oneliner = "%s, %s" % (self.poet.name, self.pretty_title())
+        oneliner += " [%s…]" % (" ".join(self.text.split()[:5]))
+        return oneliner
+
+    def get_absolute_url(self):
+        return reverse('poetry_poem', kwargs={'slug': self.slug})
+
+    def pretty_title(self):
+        return self.title or "***"
+
+    def visit(self):
+        self.view_count += 1
+        self.seen_at = datetime.now()
+        self.save()
diff --git a/src/poetry/static/poetry/poem.css b/src/poetry/static/poetry/poem.css
new file mode 100644 (file)
index 0000000..e2f6f01
--- /dev/null
@@ -0,0 +1,137 @@
+body {
+    font-size: 16px;
+    font: Georgia, "Times New Roman", serif;
+    line-height: 1.5em;
+    margin: 0;
+}
+
+a {
+    color: blue;
+    text-decoration: none;
+}
+
+a:hover {
+    border-bottom: 1px dotted;
+}
+
+#book-text {
+    margin: 3em;
+    max-width: 36em;
+}
+
+/* ================================== */
+/* = Header with logo and menu      = */
+/* ================================== */
+#header {
+    margin: 3.4em 0 0 1.4em;
+}
+
+img {
+    border: none;
+}
+
+
+#menu {
+    position: fixed;
+    left: 0em;
+    top: 0em;
+    width: 100%;
+    height: 1.5em;
+    background: #333;
+    color: #FFF;
+    opacity: 0.9;
+    z-index: 99;
+}
+
+#menu a.menu-link {
+    display: block;
+    float: left;
+    height: 1.5em;
+    margin-left: 0.5em;
+    text-align: center;
+    color: #FFF;
+}
+#menu span {
+    color: #888;
+    font-style: italic;
+    font-size: .75em;
+    margin-right: 0.5em;
+}
+
+
+/* =================================================== */
+/* = Common elements: headings, paragraphs and lines = */
+/* =================================================== */
+h1 {
+    font-size: 3em;
+    margin: 1.5em 0;
+    text-align: center;
+    line-height: 1.5em;
+    font-weight: bold;
+}
+
+h2 {
+    font-size: 2em;
+    margin: 1.5em 0 0;
+    font-weight: bold;
+    line-height: 1.5em;
+}
+
+h3 {
+    font-size: 1.5em;
+    margin: 1.5em 0 0;
+    font-weight: normal;
+    line-height: 1.5em;
+}
+
+h4 {
+    font-size: 1em;
+    margin: 1.5em 0 0;
+    line-height: 1.5em;
+}
+
+p {
+    margin: 0;
+}
+
+
+#footnotes {
+    margin-top: 3em;
+    margin-left: 2.5em;
+    font-size: 0.875em;
+}
+
+#footnotes p, #footnotes ul {
+    margin: 1.5em 0;
+}
+
+#footnotes .permalink {
+    font-size: .75em;
+}
+
+/* =================== */
+/* = Custom elements = */
+/* =================== */
+span.author {
+    font-size: 0.5em;
+    display: block;
+    line-height: 1.5em;
+    margin-bottom: 0.25em;
+}
+
+span.author a {
+    color: inherit;
+}
+
+span.author a {
+    color: inherit;
+}
+
+
+/* =================================== */
+/* = Hide some elements for printing = */
+/* =================================== */
+
+@media print {
+    #menu {display: none;}
+}
diff --git a/src/poetry/templates/poetry/contest.html b/src/poetry/templates/poetry/contest.html
new file mode 100644 (file)
index 0000000..9852c75
--- /dev/null
@@ -0,0 +1,38 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+<h1>
+<a href='{% url "e1_main_page" %}'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
+Turniej Elektrybałtów: utwory wybrane do konkursu</h1>
+
+<div class="social">
+<span style="position:relative; top: -5px;" >
+    <div class="fb-like" data-href="http://turniej.wolnelektury.pl" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
+</span>
+<g:plusone annotation="bubble" href="http://turniej.wolnelektury.pl"></g:plusone>
+<script>
+  new nk_fajne({
+    url: "http://turniej.wolnelektury.pl",
+    type: 4,
+    color: 0,
+    title: "Turniej Elektrybałtów",
+    image: "http://turniej.wolnelektury.pl/turniej.png",
+    description: "Turniej Elektrybałtów - otwarty konkurs na najlepszego automatycznego poetę."
+  });
+</script>
+</div>
+
+<div style='clear: both'></div>
+
+{% for poet in poets %}
+    <h2><a href="{{ poet.get_absolute_url }}">{{ poet }}</a></h2>
+    <ul class='plain'>
+    {% for poem in poet.contest_poems %}
+        <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
+    {% endfor %}
+    </ul>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/src/poetry/templates/poetry/main.html b/src/poetry/templates/poetry/main.html
new file mode 100644 (file)
index 0000000..6234003
--- /dev/null
@@ -0,0 +1,54 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+<h1>
+<a href='{% url "e1_main_page" %}'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
+Turniej Elektrybałtów</h1>
+
+<div class="social">
+<span style="position:relative; top: -5px;" >
+    <div class="fb-like" data-href="http://turniej.wolnelektury.pl" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
+</span>
+<g:plusone annotation="bubble" href="http://turniej.wolnelektury.pl"></g:plusone>
+<script>
+  new nk_fajne({
+    url: "http://turniej.wolnelektury.pl",
+    type: 4,
+    color: 0,
+    title: "Turniej Elektrybałtów",
+    image: "http://turniej.wolnelektury.pl/turniej.png",
+    description: "Turniej Elektrybałtów - otwarty konkurs na najlepszego automatycznego poetę."
+  });
+</script>
+</div>
+
+<h2>Uczestnicy:</h2>
+<ul class='poet-list'>
+{% for poet in poets %}
+    <li><a href="{{ poet.get_absolute_url }}">{{ poet }}</a>
+        (<a href="{% url 'poetry_new' poet.slug %}">Twórz-że!</a>)</li>
+{% endfor %}
+</ul>
+
+<div style='clear: both'></div>
+
+<a class='tworz' href="{% url 'poetry_new' %}">Twórz-że się!</a>
+
+<h2><a href="{% url 'poetry_contest' %}">Utwory do konkursu zostały wybrane!</a></h2>
+
+<p>Spośród wygenerowanych przz nas propozycji autorzy programów wybrali po trzy utwory.</p>
+<p><a href="{% url 'poetry_contest' %}">Zobacz wiersze startujące w konkursie!</a></p>
+</p>
+
+
+
+
+<h2>Ostatnio opublikowane utwory:</h2>
+<ul class='plain'>
+{% for poem in last %}
+    <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/src/poetry/templates/poetry/poem.html b/src/poetry/templates/poetry/poem.html
new file mode 100644 (file)
index 0000000..0ac6b3c
--- /dev/null
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Turniej Elektrybałtów: {{ poem }}</title>
+    <meta charset="utf-8" />
+
+    <link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
+    <style type="text/css">
+    @import "{{ STATIC_URL }}poetry/poem.css";
+    </style>
+</head>
+
+<body>
+
+<div id="fb-root"></div>
+<script>(function(d, s, id) {
+  var js, fjs = d.getElementsByTagName(s)[0];
+  if (d.getElementById(id)) {return;}
+  js = d.createElement(s); js.id = id;
+  js.src = "//connect.facebook.net/pl_PL/all.js#xfbml=1";
+  fjs.parentNode.insertBefore(js, fjs);
+}(document, 'script', 'facebook-jssdk'));</script>
+<script src="http://0.s-nk.pl/script/nk_widgets/nk_widget_fajne_embed"></script>
+
+        <div id="menu">
+            <a href='{% url "poetry_new" %}' class='menu-link'>Twórzże się jeszcze raz!</a>
+            <span style='float: right'>Turniej Elektrybałtów</a>
+        </div>
+
+        <div id="header">
+            <div id="logo">
+                <a href="{% url "e1_main_page" %}"><img src="{{ STATIC_URL }}img/turniej-maly.png" alt="logo Turnieju Elektrybałtów" /></a>
+            </div>
+        </div>
+
+        <div id="book-text">
+            <h1>
+                <span class="author"><a href="{{ poem.poet.get_absolute_url }}">{{ poem.poet.name }}</a></span>
+                <span class="title">{% if poem.title %}{{ poem.title }}{% else %}***{% endif %}</span>
+            </h1>
+            {{ poem.text|linebreaksbr }}
+        <div id="footnotes" >
+            <h3>O utworze</h3>
+            <p>Autor: <a href="{{ poem.poet.get_absolute_url }}">{{ poem.poet.name }}</a> (<a href="{% url 'poetry_main' %}">wszyscy autorzy</a>).
+                <br/>Zobacz <a href="{% url 'poetry_new' poem.poet.slug %}">nowy wiersz</a> tego autora,
+                albo <a href="{% url 'poetry_new' %}">nowy wiersz dowolnego autora</a>.</p>
+
+
+
+<div>
+<h3>Podziel się wierszem!</h3>
+<span style="position:relative; top: -5px;" >
+    <div class="fb-like" data-href="http://turniej.wolnelektury.pl{{ poem.get_absolute_url }}" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
+</span>
+<g:plusone annotation="bubble" href="http://turniej.wolnelektury.pl{{ poem.get_absolute_url }}"></g:plusone>
+
+<script>
+  new nk_fajne({
+    url: "http://turniej.wolnelektury.pl{{ poem.get_absolute_url }}",
+    type: 4,
+    color: 0,
+    title: "wiersz",
+    image: "http://turniej.wolnelektury.pl/turniej.png",
+    description: "{{ poem }}"
+  });
+</script>
+    <br/>
+        albo użyj linku:<br/>
+        <a class="permalink" href="{{ poem.get_absolute_url }}">http://turniej.wolnelektury.pl{{ poem.get_absolute_url }}</a>
+</div>
+
+
+
+
+        </div>
+
+<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
+  {lang: 'pl'}
+</script>
+{% load piwik_tags %}
+{% tracking_code %}
+</body>
+
+
+</html>
+
+
diff --git a/src/poetry/templates/poetry/poet.html b/src/poetry/templates/poetry/poet.html
new file mode 100644 (file)
index 0000000..7947a66
--- /dev/null
@@ -0,0 +1,58 @@
+{% extends "edition1/base.html" %}
+
+
+{% block "extratitle" %}: {{ poet.name }}{% endblock %}
+
+
+{% block "body" %}
+
+<h1>
+<a href='{% url "e1_main_page" %}'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
+{{ poet.name }}</h1>
+
+<div>
+<span style="position:relative; top: -5px;" >
+    <div class="fb-like" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
+</span>
+<g:plusone annotation="bubble"></g:plusone>
+<script>
+  new nk_fajne({
+    url: "{{ request.build_absolute_uri }}",
+    type: 4,
+    color: 0,
+    title: "{{ poet.name }}",
+    image: "http://turniej.wolnelektury.pl/turniej.png",
+    description: "Turniej Elektrybałtów - konkurs na najlepszego automatycznego poetę."
+  });
+</script>
+</div>
+
+<p><a href="{% url 'poetry_main' %}">Zobacz wszystkich autorów.</a></p>
+
+<div class="poet-description">
+
+<p>Autor programu: <strong>{{ poet.author }}</strong></p>
+
+{{ poet.description|linebreaks }}
+
+<p>Kod źródłowy: <a href="{{ poet.url }}">{{ poet.url }}</a></p>
+
+<a class="tworz" href="{% url 'poetry_new' poet.slug %}">Twórz-że!</a>
+
+</div>
+
+<h2>Utwory w konkursie (<a href="{% url 'poetry_contest' %}">zobacz wszystkie</a>)</h2>
+<ul class='plain'>
+{% for poem in in_contest %}
+    <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
+{% endfor %}
+</ul>
+
+<h2>Ostatnio opublikowane utwory:</h2>
+<ul class='plain'>
+{% for poem in last %}
+    <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/src/poetry/urls.py b/src/poetry/urls.py
new file mode 100644 (file)
index 0000000..eb9b4f3
--- /dev/null
@@ -0,0 +1,13 @@
+from django.conf.urls import url
+from . import views
+
+
+urlpatterns = [
+    url(r'^wiersz/(?P<slug>[a-zA-Z0-9-]+)/$', views.poem, name='poetry_poem'),
+
+    url(r"^$", views.main, name="poetry_main"),
+    url(r"^nowy/$", views.new, name="poetry_new"),
+    url(r"^konkurs/$", views.contest, name="poetry_contest"),
+    url(r"^(?P<slug>[a-zA-Z0-9-]+)/$", views.poet, name="poetry_poet"),
+    url(r"^(?P<slug>[a-zA-Z0-9-]+)/nowy/$", views.new, name="poetry_new"),
+]
diff --git a/src/poetry/utils.py b/src/poetry/utils.py
new file mode 100644 (file)
index 0000000..6366f08
--- /dev/null
@@ -0,0 +1,10 @@
+import time
+
+from base64 import urlsafe_b64encode
+from hashlib import sha1
+
+
+def get_hash(seed):
+    sha_digest = sha1(('%d%s' % (time.time(), str(seed))
+        ).encode('utf-8', 'replace')).digest()
+    return urlsafe_b64encode(sha_digest).decode('latin1').replace('=', '').replace('_', '-').lower()
diff --git a/src/poetry/views.py b/src/poetry/views.py
new file mode 100644 (file)
index 0000000..71309d7
--- /dev/null
@@ -0,0 +1,36 @@
+from django.shortcuts import render, get_object_or_404
+from poetry.models import Poet, Poem
+
+
+def new(request, slug=None):
+    if slug is not None:
+        poet = get_object_or_404(Poet, slug=slug)
+    else:
+        poet = Poet.objects.order_by('?')[0]
+
+    poem = poet.write()
+    return render(request, "poetry/poem.html", locals())
+
+
+def poem(request, slug):
+    poem = get_object_or_404(Poem, slug=slug)
+    return render(request, "poetry/poem.html", locals())
+
+
+def poet(request, slug):
+    poet = get_object_or_404(Poet, slug=slug)
+    last = poet.poem_set.order_by('-created_at')[:20]
+    in_contest = poet.poem_set.filter(in_contest=True).order_by('created_at')
+    return render(request, "poetry/poet.html", locals())
+
+
+def main(request):
+    poets = Poet.objects.all().order_by('?')
+    last = Poem.objects.all().order_by('-created_at')[:20]
+    return render(request, "poetry/main.html", locals())
+
+
+def contest(request):
+    poets = Poet.objects.all().order_by('?')
+    return render(request, "poetry/contest.html", locals())
+
diff --git a/turniej/__init__.py b/turniej/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/turniej/localsettings.py.template b/turniej/localsettings.py.template
deleted file mode 100644 (file)
index 3765080..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This template is uploaded by `fab setup`.
-# You should fill out the details in the version deployed on the server.
-
-
-ADMINS = (
-    #('Name', 'E-mail'),
-)
-
-MANAGERS = (
-    #('Name', 'E-mail'),
-)
-
-# on
-DATABASES = {
-    'default': {
-        'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
-        'NAME': '', # Or path to database file if using sqlite3.
-        'USER': '',                      # Not used with sqlite3.
-        'PASSWORD': '',                  # Not used with sqlite3.
-        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
-        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
-    }
-}
-
-
-SECRET_KEY = %(secret_key)r
-MEDIA_ROOT = '%(path)s/media/'
diff --git a/turniej/settings.py b/turniej/settings.py
deleted file mode 100644 (file)
index 03e2586..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-# Django settings for turniej project.
-import os.path
-
-PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))
-
-DEBUG = False
-
-ADMINS = [
-    # ('Your Name', 'your_email@domain.com'),
-]
-
-MANAGERS = ADMINS
-
-DATABASES = {
-    'default': {
-        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
-        'NAME': os.path.join(PROJECT_DIR, 'dev.db'), # Or path to database file if using sqlite3.
-        'USER': '',                      # Not used with sqlite3.
-        'PASSWORD': '',                  # Not used with sqlite3.
-        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
-        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
-    }
-}
-
-# Local time zone for this installation. Choices can be found here:
-# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
-# although not all choices may be available on all operating systems.
-# On Unix systems, a value of None will cause Django to use the same
-# timezone as the operating system.
-# If running in a Windows environment this must be set to the same as your
-# system time zone.
-TIME_ZONE = None
-
-# Language code for this installation. All choices can be found here:
-# http://www.i18nguy.com/unicode/language-identifiers.html
-LANGUAGE_CODE = 'pl'
-
-SITE_ID = 1
-
-# If you set this to False, Django will make some optimizations so as not
-# to load the internationalization machinery.
-USE_I18N = True
-
-# If you set this to False, Django will not format dates, numbers and
-# calendars according to the current locale
-#USE_L10N = True
-
-# Absolute filesystem path to the directory that will hold user-uploaded files.
-# Example: "/home/media/media.lawrence.com/media/"
-MEDIA_ROOT = os.path.join(PROJECT_DIR, '../media')
-
-# URL that handles the media served from MEDIA_ROOT. Make sure to use a
-# trailing slash.
-# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
-MEDIA_URL = '/media/'
-
-# Absolute path to the directory static files should be collected to.
-# Don't put anything in this directory yourself; store your static files
-# in apps' "static/" subdirectories and in STATICFILES_DIRS.
-# Example: "/home/media/media.lawrence.com/static/"
-STATIC_ROOT = os.path.join(PROJECT_DIR, '../static')
-
-# URL prefix for static files.
-# Example: "http://media.lawrence.com/static/"
-STATIC_URL = '/static/'
-
-# URL prefix for admin static files -- CSS, JavaScript and images.
-# Make sure to use a trailing slash.
-# Examples: "http://foo.com/static/admin/", "/static/admin/".
-ADMIN_MEDIA_PREFIX = '/static/admin/'
-
-# Additional locations of static files
-STATICFILES_DIRS = (
-    # Put strings here, like "/home/html/static" or "C:/www/django/static".
-    # Always use forward slashes, even on Windows.
-    # Don't forget to use absolute paths, not relative paths.
-
-    os.path.join(PROJECT_DIR, 'static'),
-)
-
-# List of finder classes that know how to find static files in
-# various locations.
-STATICFILES_FINDERS = (
-    'django.contrib.staticfiles.finders.FileSystemFinder',
-    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
-#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
-)
-
-TEMPLATES = [
-    {
-        'BACKEND': 'django.template.backends.django.DjangoTemplates',
-        'APP_DIRS': True,
-        'DIRS': [
-            os.path.join(PROJECT_DIR, 'templates'),
-        ],
-        'OPTIONS': {
-            'context_processors': [
-                "django.template.context_processors.debug",
-                "django.template.context_processors.i18n",
-                "django.template.context_processors.media",
-                "django.template.context_processors.static",
-                "django.contrib.messages.context_processors.messages",
-                "django.template.context_processors.request",
-            ],
-        },
-    },
-]
-
-MIDDLEWARE = [
-    'django.middleware.common.CommonMiddleware',
-]
-
-ROOT_URLCONF = 'turniej.urls'
-
-INSTALLED_APPS = [
-    'django.contrib.sites',
-    'django.contrib.staticfiles',
-
-    'piwik',
-
-    'fnpdjango',
-    'poetry',
-    'edition1',
-    'edition2',
-]
-
-POETRY_POEMS_FOR_CONTEST = 20
-
-ALLOWED_HOSTS = [
-    'turniej.wolnelektury.pl',
-]
-
-# Load localsettings, if they exist
-try:
-    from .localsettings import *
-except ImportError:
-    pass
diff --git a/turniej/static/img/cc.png b/turniej/static/img/cc.png
deleted file mode 100644 (file)
index 1de9d62..0000000
Binary files a/turniej/static/img/cc.png and /dev/null differ
diff --git a/turniej/static/img/di.png b/turniej/static/img/di.png
deleted file mode 100644 (file)
index 8136626..0000000
Binary files a/turniej/static/img/di.png and /dev/null differ
diff --git a/turniej/static/img/favicon.ico b/turniej/static/img/favicon.ico
deleted file mode 100644 (file)
index 89067a8..0000000
Binary files a/turniej/static/img/favicon.ico and /dev/null differ
diff --git a/turniej/static/img/fnp.png b/turniej/static/img/fnp.png
deleted file mode 100644 (file)
index fe75e2d..0000000
Binary files a/turniej/static/img/fnp.png and /dev/null differ
diff --git a/turniej/static/img/fnp_black.png b/turniej/static/img/fnp_black.png
deleted file mode 100644 (file)
index 411b2fd..0000000
Binary files a/turniej/static/img/fnp_black.png and /dev/null differ
diff --git a/turniej/static/img/koed.png b/turniej/static/img/koed.png
deleted file mode 100644 (file)
index 6bcce17..0000000
Binary files a/turniej/static/img/koed.png and /dev/null differ
diff --git a/turniej/static/img/lempl.png b/turniej/static/img/lempl.png
deleted file mode 100644 (file)
index 51c9b9e..0000000
Binary files a/turniej/static/img/lempl.png and /dev/null differ
diff --git a/turniej/static/img/social/bigfacebook.png b/turniej/static/img/social/bigfacebook.png
deleted file mode 100644 (file)
index 630416c..0000000
Binary files a/turniej/static/img/social/bigfacebook.png and /dev/null differ
diff --git a/turniej/static/img/social/biggoogle.png b/turniej/static/img/social/biggoogle.png
deleted file mode 100644 (file)
index 19ad19d..0000000
Binary files a/turniej/static/img/social/biggoogle.png and /dev/null differ
diff --git a/turniej/static/img/social/bignk.png b/turniej/static/img/social/bignk.png
deleted file mode 100644 (file)
index c119cd1..0000000
Binary files a/turniej/static/img/social/bignk.png and /dev/null differ
diff --git a/turniej/static/img/social/bigtwitter.png b/turniej/static/img/social/bigtwitter.png
deleted file mode 100644 (file)
index fafbe64..0000000
Binary files a/turniej/static/img/social/bigtwitter.png and /dev/null differ
diff --git a/turniej/static/img/social/facebook.png b/turniej/static/img/social/facebook.png
deleted file mode 100644 (file)
index dca6fe8..0000000
Binary files a/turniej/static/img/social/facebook.png and /dev/null differ
diff --git a/turniej/static/img/social/google.png b/turniej/static/img/social/google.png
deleted file mode 100644 (file)
index c8c2882..0000000
Binary files a/turniej/static/img/social/google.png and /dev/null differ
diff --git a/turniej/static/img/social/nk.png b/turniej/static/img/social/nk.png
deleted file mode 100644 (file)
index de6650f..0000000
Binary files a/turniej/static/img/social/nk.png and /dev/null differ
diff --git a/turniej/static/img/social/twitter.png b/turniej/static/img/social/twitter.png
deleted file mode 100644 (file)
index 6745ef4..0000000
Binary files a/turniej/static/img/social/twitter.png and /dev/null differ
diff --git a/turniej/static/img/turniej-maly.png b/turniej/static/img/turniej-maly.png
deleted file mode 100644 (file)
index b11f0d6..0000000
Binary files a/turniej/static/img/turniej-maly.png and /dev/null differ
diff --git a/turniej/static/img/turniej.png b/turniej/static/img/turniej.png
deleted file mode 100644 (file)
index dbcbda4..0000000
Binary files a/turniej/static/img/turniej.png and /dev/null differ
diff --git a/turniej/static/img/wl.png b/turniej/static/img/wl.png
deleted file mode 100644 (file)
index 1d6cb6a..0000000
Binary files a/turniej/static/img/wl.png and /dev/null differ
diff --git a/turniej/static/img/wl_black.png b/turniej/static/img/wl_black.png
deleted file mode 100644 (file)
index c729463..0000000
Binary files a/turniej/static/img/wl_black.png and /dev/null differ
diff --git a/turniej/static/js/jquery.countdown-pl.js b/turniej/static/js/jquery.countdown-pl.js
deleted file mode 100644 (file)
index b94665c..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* http://keith-wood.name/countdown.html\r
- * Polish initialisation for the jQuery countdown extension\r
- * Written by Pawel Lewtak lewtak@gmail.com (2008) */\r
-(function($) {\r
-       $.countdown.regional['pl'] = {\r
-               labels: ['lat', 'miesięcy', 'tygodni', 'dni', 'godzin', 'minut', 'sekund'],\r
-               labels1: ['rok', 'miesiąc', 'tydzień', 'dzień', 'godzina', 'minuta', 'sekunda'],\r
-               labels2: ['lata', 'miesiące', 'tygodnie', 'dni', 'godziny', 'minuty', 'sekundy'],\r
-               compactLabels: ['l', 'm', 't', 'd'], compactLabels1: ['r', 'm', 't', 'd'],\r
-               whichLabels: function(amount) {\r
-                       var units = amount % 10;\r
-                       var tens = Math.floor((amount % 100) / 10);\r
-                       return (amount == 1 ? 1 : (units >= 2 && units <= 4 && tens != 1 ? 2 : 0));\r
-               },\r
-               digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],\r
-               timeSeparator: ':', isRTL: false};\r
-       $.countdown.setDefaults($.countdown.regional['pl']);\r
-})(jQuery);\r
diff --git a/turniej/static/js/jquery.countdown.css b/turniej/static/js/jquery.countdown.css
deleted file mode 100644 (file)
index f47784b..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* jQuery Countdown styles 1.6.1. */
-.hasCountdown {
-}
-.countdown_rtl {
-       direction: rtl;
-}
-.countdown_holding span {
-       color: #888;
-}
-.countdown_row {
-       clear: both;
-       width: 100%;
-       padding: 0px 2px;
-       text-align: center;
-}
-.countdown_show1 .countdown_section {
-       width: 98%;
-}
-.countdown_show2 .countdown_section {
-       width: 48%;
-}
-.countdown_show3 .countdown_section {
-       width: 32.5%;
-}
-.countdown_show4 .countdown_section {
-       width: 24.5%;
-}
-.countdown_show5 .countdown_section {
-       width: 19.5%;
-}
-.countdown_show6 .countdown_section {
-       width: 16.25%;
-}
-.countdown_show7 .countdown_section {
-       width: 14%;
-}
-.countdown_section {
-       display: block;
-       float: left;
-       text-align: center;
-}
-.countdown_amount {
-       font-size: 360%;
-}
-.countdown_descr {
-       display: block;
-       width: 100%;
-}
diff --git a/turniej/static/js/jquery.countdown.min.js b/turniej/static/js/jquery.countdown.min.js
deleted file mode 100644 (file)
index ebd1314..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-/* http://keith-wood.name/countdown.html\r
-   Countdown for jQuery v1.6.1.\r
-   Written by Keith Wood (kbwood{at}iinet.com.au) January 2008.\r
-   Available under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license. \r
-   Please attribute the author if you use it. */\r
-(function($){function Countdown(){this.regional=[];this.regional['']={labels:['Years','Months','Weeks','Days','Hours','Minutes','Seconds'],labels1:['Year','Month','Week','Day','Hour','Minute','Second'],compactLabels:['y','m','w','d'],whichLabels:null,digits:['0','1','2','3','4','5','6','7','8','9'],timeSeparator:':',isRTL:false};this._defaults={until:null,since:null,timezone:null,serverSync:null,format:'dHMS',layout:'',compact:false,significant:0,description:'',expiryUrl:'',expiryText:'',alwaysExpire:false,onExpiry:null,onTick:null,tickInterval:1};$.extend(this._defaults,this.regional['']);this._serverSyncs=[];function timerCallBack(a){var b=(a<1e12?(b=performance.now?(performance.now()+performance.timing.navigationStart):Date.now()):a||new Date().getTime());if(b-d>=1000){x._updateTargets();d=b}c(timerCallBack)}var c=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||null;var d=0;if(!c||$.noRequestAnimationFrame){$.noRequestAnimationFrame=null;setInterval(function(){x._updateTargets()},980)}else{d=window.animationStartTime||window.webkitAnimationStartTime||window.mozAnimationStartTime||window.oAnimationStartTime||window.msAnimationStartTime||new Date().getTime();c(timerCallBack)}}var Y=0;var O=1;var W=2;var D=3;var H=4;var M=5;var S=6;$.extend(Countdown.prototype,{markerClassName:'hasCountdown',propertyName:'countdown',_rtlClass:'countdown_rtl',_sectionClass:'countdown_section',_amountClass:'countdown_amount',_rowClass:'countdown_row',_holdingClass:'countdown_holding',_showClass:'countdown_show',_descrClass:'countdown_descr',_timerTargets:[],setDefaults:function(a){this._resetExtraLabels(this._defaults,a);$.extend(this._defaults,a||{})},UTCDate:function(a,b,c,e,f,g,h,i){if(typeof b=='object'&&b.constructor==Date){i=b.getMilliseconds();h=b.getSeconds();g=b.getMinutes();f=b.getHours();e=b.getDate();c=b.getMonth();b=b.getFullYear()}var d=new Date();d.setUTCFullYear(b);d.setUTCDate(1);d.setUTCMonth(c||0);d.setUTCDate(e||1);d.setUTCHours(f||0);d.setUTCMinutes((g||0)-(Math.abs(a)<30?a*60:a));d.setUTCSeconds(h||0);d.setUTCMilliseconds(i||0);return d},periodsToSeconds:function(a){return a[0]*31557600+a[1]*2629800+a[2]*604800+a[3]*86400+a[4]*3600+a[5]*60+a[6]},_attachPlugin:function(a,b){a=$(a);if(a.hasClass(this.markerClassName)){return}var c={options:$.extend({},this._defaults),_periods:[0,0,0,0,0,0,0]};a.addClass(this.markerClassName).data(this.propertyName,c);this._optionPlugin(a,b)},_addTarget:function(a){if(!this._hasTarget(a)){this._timerTargets.push(a)}},_hasTarget:function(a){return($.inArray(a,this._timerTargets)>-1)},_removeTarget:function(b){this._timerTargets=$.map(this._timerTargets,function(a){return(a==b?null:a)})},_updateTargets:function(){for(var i=this._timerTargets.length-1;i>=0;i--){this._updateCountdown(this._timerTargets[i])}},_optionPlugin:function(a,b,c){a=$(a);var d=a.data(this.propertyName);if(!b||(typeof b=='string'&&c==null)){var e=b;b=(d||{}).options;return(b&&e?b[e]:b)}if(!a.hasClass(this.markerClassName)){return}b=b||{};if(typeof b=='string'){var e=b;b={};b[e]=c}this._resetExtraLabels(d.options,b);$.extend(d.options,b);this._adjustSettings(a,d);var f=new Date();if((d._since&&d._since<f)||(d._until&&d._until>f)){this._addTarget(a[0])}this._updateCountdown(a,d)},_updateCountdown:function(a,b){var c=$(a);b=b||c.data(this.propertyName);if(!b){return}c.html(this._generateHTML(b)).toggleClass(this._rtlClass,b.options.isRTL);if($.isFunction(b.options.onTick)){var d=b._hold!='lap'?b._periods:this._calculatePeriods(b,b._show,b.options.significant,new Date());if(b.options.tickInterval==1||this.periodsToSeconds(d)%b.options.tickInterval==0){b.options.onTick.apply(a,[d])}}var e=b._hold!='pause'&&(b._since?b._now.getTime()<b._since.getTime():b._now.getTime()>=b._until.getTime());if(e&&!b._expiring){b._expiring=true;if(this._hasTarget(a)||b.options.alwaysExpire){this._removeTarget(a);if($.isFunction(b.options.onExpiry)){b.options.onExpiry.apply(a,[])}if(b.options.expiryText){var f=b.options.layout;b.options.layout=b.options.expiryText;this._updateCountdown(a,b);b.options.layout=f}if(b.options.expiryUrl){window.location=b.options.expiryUrl}}b._expiring=false}else if(b._hold=='pause'){this._removeTarget(a)}c.data(this.propertyName,b)},_resetExtraLabels:function(a,b){var c=false;for(var n in b){if(n!='whichLabels'&&n.match(/[Ll]abels/)){c=true;break}}if(c){for(var n in a){if(n.match(/[Ll]abels[02-9]/)){a[n]=null}}}},_adjustSettings:function(a,b){var c;var d=0;var e=null;for(var i=0;i<this._serverSyncs.length;i++){if(this._serverSyncs[i][0]==b.options.serverSync){e=this._serverSyncs[i][1];break}}if(e!=null){d=(b.options.serverSync?e:0);c=new Date()}else{var f=($.isFunction(b.options.serverSync)?b.options.serverSync.apply(a,[]):null);c=new Date();d=(f?c.getTime()-f.getTime():0);this._serverSyncs.push([b.options.serverSync,d])}var g=b.options.timezone;g=(g==null?-c.getTimezoneOffset():g);b._since=b.options.since;if(b._since!=null){b._since=this.UTCDate(g,this._determineTime(b._since,null));if(b._since&&d){b._since.setMilliseconds(b._since.getMilliseconds()+d)}}b._until=this.UTCDate(g,this._determineTime(b.options.until,c));if(d){b._until.setMilliseconds(b._until.getMilliseconds()+d)}b._show=this._determineShow(b)},_destroyPlugin:function(a){a=$(a);if(!a.hasClass(this.markerClassName)){return}this._removeTarget(a[0]);a.removeClass(this.markerClassName).empty().removeData(this.propertyName)},_pausePlugin:function(a){this._hold(a,'pause')},_lapPlugin:function(a){this._hold(a,'lap')},_resumePlugin:function(a){this._hold(a,null)},_hold:function(a,b){var c=$.data(a,this.propertyName);if(c){if(c._hold=='pause'&&!b){c._periods=c._savePeriods;var d=(c._since?'-':'+');c[c._since?'_since':'_until']=this._determineTime(d+c._periods[0]+'y'+d+c._periods[1]+'o'+d+c._periods[2]+'w'+d+c._periods[3]+'d'+d+c._periods[4]+'h'+d+c._periods[5]+'m'+d+c._periods[6]+'s');this._addTarget(a)}c._hold=b;c._savePeriods=(b=='pause'?c._periods:null);$.data(a,this.propertyName,c);this._updateCountdown(a,c)}},_getTimesPlugin:function(a){var b=$.data(a,this.propertyName);return(!b?null:(!b._hold?b._periods:this._calculatePeriods(b,b._show,b.options.significant,new Date())))},_determineTime:function(k,l){var m=function(a){var b=new Date();b.setTime(b.getTime()+a*1000);return b};var n=function(a){a=a.toLowerCase();var b=new Date();var c=b.getFullYear();var d=b.getMonth();var e=b.getDate();var f=b.getHours();var g=b.getMinutes();var h=b.getSeconds();var i=/([+-]?[0-9]+)\s*(s|m|h|d|w|o|y)?/g;var j=i.exec(a);while(j){switch(j[2]||'s'){case's':h+=parseInt(j[1],10);break;case'm':g+=parseInt(j[1],10);break;case'h':f+=parseInt(j[1],10);break;case'd':e+=parseInt(j[1],10);break;case'w':e+=parseInt(j[1],10)*7;break;case'o':d+=parseInt(j[1],10);e=Math.min(e,x._getDaysInMonth(c,d));break;case'y':c+=parseInt(j[1],10);e=Math.min(e,x._getDaysInMonth(c,d));break}j=i.exec(a)}return new Date(c,d,e,f,g,h,0)};var o=(k==null?l:(typeof k=='string'?n(k):(typeof k=='number'?m(k):k)));if(o)o.setMilliseconds(0);return o},_getDaysInMonth:function(a,b){return 32-new Date(a,b,32).getDate()},_normalLabels:function(a){return a},_generateHTML:function(c){var d=this;c._periods=(c._hold?c._periods:this._calculatePeriods(c,c._show,c.options.significant,new Date()));var e=false;var f=0;var g=c.options.significant;var h=$.extend({},c._show);for(var i=Y;i<=S;i++){e|=(c._show[i]=='?'&&c._periods[i]>0);h[i]=(c._show[i]=='?'&&!e?null:c._show[i]);f+=(h[i]?1:0);g-=(c._periods[i]>0?1:0)}var j=[false,false,false,false,false,false,false];for(var i=S;i>=Y;i--){if(c._show[i]){if(c._periods[i]){j[i]=true}else{j[i]=g>0;g--}}}var k=(c.options.compact?c.options.compactLabels:c.options.labels);var l=c.options.whichLabels||this._normalLabels;var m=function(a){var b=c.options['compactLabels'+l(c._periods[a])];return(h[a]?d._translateDigits(c,c._periods[a])+(b?b[a]:k[a])+' ':'')};var n=function(a){var b=c.options['labels'+l(c._periods[a])];return((!c.options.significant&&h[a])||(c.options.significant&&j[a])?'<span class="'+x._sectionClass+'">'+'<span class="'+x._amountClass+'">'+d._translateDigits(c,c._periods[a])+'</span><br/>'+(b?b[a]:k[a])+'</span>':'')};return(c.options.layout?this._buildLayout(c,h,c.options.layout,c.options.compact,c.options.significant,j):((c.options.compact?'<span class="'+this._rowClass+' '+this._amountClass+(c._hold?' '+this._holdingClass:'')+'">'+m(Y)+m(O)+m(W)+m(D)+(h[H]?this._minDigits(c,c._periods[H],2):'')+(h[M]?(h[H]?c.options.timeSeparator:'')+this._minDigits(c,c._periods[M],2):'')+(h[S]?(h[H]||h[M]?c.options.timeSeparator:'')+this._minDigits(c,c._periods[S],2):''):'<span class="'+this._rowClass+' '+this._showClass+(c.options.significant||f)+(c._hold?' '+this._holdingClass:'')+'">'+n(Y)+n(O)+n(W)+n(D)+n(H)+n(M)+n(S))+'</span>'+(c.options.description?'<span class="'+this._rowClass+' '+this._descrClass+'">'+c.options.description+'</span>':'')))},_buildLayout:function(c,d,e,f,g,h){var j=c.options[f?'compactLabels':'labels'];var k=c.options.whichLabels||this._normalLabels;var l=function(a){return(c.options[(f?'compactLabels':'labels')+k(c._periods[a])]||j)[a]};var m=function(a,b){return c.options.digits[Math.floor(a/b)%10]};var o={desc:c.options.description,sep:c.options.timeSeparator,yl:l(Y),yn:this._minDigits(c,c._periods[Y],1),ynn:this._minDigits(c,c._periods[Y],2),ynnn:this._minDigits(c,c._periods[Y],3),y1:m(c._periods[Y],1),y10:m(c._periods[Y],10),y100:m(c._periods[Y],100),y1000:m(c._periods[Y],1000),ol:l(O),on:this._minDigits(c,c._periods[O],1),onn:this._minDigits(c,c._periods[O],2),onnn:this._minDigits(c,c._periods[O],3),o1:m(c._periods[O],1),o10:m(c._periods[O],10),o100:m(c._periods[O],100),o1000:m(c._periods[O],1000),wl:l(W),wn:this._minDigits(c,c._periods[W],1),wnn:this._minDigits(c,c._periods[W],2),wnnn:this._minDigits(c,c._periods[W],3),w1:m(c._periods[W],1),w10:m(c._periods[W],10),w100:m(c._periods[W],100),w1000:m(c._periods[W],1000),dl:l(D),dn:this._minDigits(c,c._periods[D],1),dnn:this._minDigits(c,c._periods[D],2),dnnn:this._minDigits(c,c._periods[D],3),d1:m(c._periods[D],1),d10:m(c._periods[D],10),d100:m(c._periods[D],100),d1000:m(c._periods[D],1000),hl:l(H),hn:this._minDigits(c,c._periods[H],1),hnn:this._minDigits(c,c._periods[H],2),hnnn:this._minDigits(c,c._periods[H],3),h1:m(c._periods[H],1),h10:m(c._periods[H],10),h100:m(c._periods[H],100),h1000:m(c._periods[H],1000),ml:l(M),mn:this._minDigits(c,c._periods[M],1),mnn:this._minDigits(c,c._periods[M],2),mnnn:this._minDigits(c,c._periods[M],3),m1:m(c._periods[M],1),m10:m(c._periods[M],10),m100:m(c._periods[M],100),m1000:m(c._periods[M],1000),sl:l(S),sn:this._minDigits(c,c._periods[S],1),snn:this._minDigits(c,c._periods[S],2),snnn:this._minDigits(c,c._periods[S],3),s1:m(c._periods[S],1),s10:m(c._periods[S],10),s100:m(c._periods[S],100),s1000:m(c._periods[S],1000)};var p=e;for(var i=Y;i<=S;i++){var q='yowdhms'.charAt(i);var r=new RegExp('\\{'+q+'<\\}(.*)\\{'+q+'>\\}','g');p=p.replace(r,((!g&&d[i])||(g&&h[i])?'$1':''))}$.each(o,function(n,v){var a=new RegExp('\\{'+n+'\\}','g');p=p.replace(a,v)});return p},_minDigits:function(a,b,c){b=''+b;if(b.length>=c){return this._translateDigits(a,b)}b='0000000000'+b;return this._translateDigits(a,b.substr(b.length-c))},_translateDigits:function(b,c){return(''+c).replace(/[0-9]/g,function(a){return b.options.digits[a]})},_determineShow:function(a){var b=a.options.format;var c=[];c[Y]=(b.match('y')?'?':(b.match('Y')?'!':null));c[O]=(b.match('o')?'?':(b.match('O')?'!':null));c[W]=(b.match('w')?'?':(b.match('W')?'!':null));c[D]=(b.match('d')?'?':(b.match('D')?'!':null));c[H]=(b.match('h')?'?':(b.match('H')?'!':null));c[M]=(b.match('m')?'?':(b.match('M')?'!':null));c[S]=(b.match('s')?'?':(b.match('S')?'!':null));return c},_calculatePeriods:function(c,d,e,f){c._now=f;c._now.setMilliseconds(0);var g=new Date(c._now.getTime());if(c._since){if(f.getTime()<c._since.getTime()){c._now=f=g}else{f=c._since}}else{g.setTime(c._until.getTime());if(f.getTime()>c._until.getTime()){c._now=f=g}}var h=[0,0,0,0,0,0,0];if(d[Y]||d[O]){var i=x._getDaysInMonth(f.getFullYear(),f.getMonth());var j=x._getDaysInMonth(g.getFullYear(),g.getMonth());var k=(g.getDate()==f.getDate()||(g.getDate()>=Math.min(i,j)&&f.getDate()>=Math.min(i,j)));var l=function(a){return(a.getHours()*60+a.getMinutes())*60+a.getSeconds()};var m=Math.max(0,(g.getFullYear()-f.getFullYear())*12+g.getMonth()-f.getMonth()+((g.getDate()<f.getDate()&&!k)||(k&&l(g)<l(f))?-1:0));h[Y]=(d[Y]?Math.floor(m/12):0);h[O]=(d[O]?m-h[Y]*12:0);f=new Date(f.getTime());var n=(f.getDate()==i);var o=x._getDaysInMonth(f.getFullYear()+h[Y],f.getMonth()+h[O]);if(f.getDate()>o){f.setDate(o)}f.setFullYear(f.getFullYear()+h[Y]);f.setMonth(f.getMonth()+h[O]);if(n){f.setDate(o)}}var p=Math.floor((g.getTime()-f.getTime())/1000);var q=function(a,b){h[a]=(d[a]?Math.floor(p/b):0);p-=h[a]*b};q(W,604800);q(D,86400);q(H,3600);q(M,60);q(S,1);if(p>0&&!c._since){var r=[1,12,4.3482,7,24,60,60];var s=S;var t=1;for(var u=S;u>=Y;u--){if(d[u]){if(h[s]>=t){h[s]=0;p=1}if(p>0){h[u]++;p=0;s=u;t=1}}t*=r[u]}}if(e){for(var u=Y;u<=S;u++){if(e&&h[u]){e--}else if(!e){h[u]=0}}}return h}});var w=['getTimes'];function isNotChained(a,b){if(a=='option'&&(b.length==0||(b.length==1&&typeof b[0]=='string'))){return true}return $.inArray(a,w)>-1}$.fn.countdown=function(a){var b=Array.prototype.slice.call(arguments,1);if(isNotChained(a,b)){return x['_'+a+'Plugin'].apply(x,[this[0]].concat(b))}return this.each(function(){if(typeof a=='string'){if(!x['_'+a+'Plugin']){throw'Unknown command: '+a;}x['_'+a+'Plugin'].apply(x,[this].concat(b))}else{x._attachPlugin(this,a||{})}})};var x=$.countdown=new Countdown()})(jQuery);
\ No newline at end of file
diff --git a/turniej/templates/404.html b/turniej/templates/404.html
deleted file mode 100644 (file)
index 1189e68..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-<h1>Nie znaleziono strony</h1>
-
-<p>Nie ma tu żadnej strony. Przejdź do <a href='/'>strony głównej</a>.</p>
-
-{% endblock %}
diff --git a/turniej/templates/500.html b/turniej/templates/500.html
deleted file mode 100644 (file)
index 5ce19fc..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-<h1>Błąd</h1>
-
-<p>Wystąpił błąd serwera. Przepraszamy!</p>
-
-{% endblock %}
diff --git a/turniej/templates/base.html b/turniej/templates/base.html
deleted file mode 100644 (file)
index 132e4f3..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Turniej Elektrybałtów{% block "extratitle" %}{% endblock %}</title>
-    <meta charset="utf-8" />
-
-    <link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
-    <style type="text/css">
-    @import "{{ STATIC_URL }}style.css";
-    </style>
-</head>
-
-<body>
-
-<div id="fb-root"></div>
-<script>(function(d, s, id) {
-  var js, fjs = d.getElementsByTagName(s)[0];
-  if (d.getElementById(id)) {return;}
-  js = d.createElement(s); js.id = id;
-  js.src = "//connect.facebook.net/pl_PL/all.js#xfbml=1";
-  fjs.parentNode.insertBefore(js, fjs);
-}(document, 'script', 'facebook-jssdk'));</script>
-<script src="http://0.s-nk.pl/script/nk_widgets/nk_widget_fajne_embed"></script>
-
-<div id="body">
-{% block "body" %}{% endblock %}
-</div>
-
-
-<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
-  {lang: 'pl'}
-</script>
-{% load piwik_tags %}
-{% tracking_code %}
-</body>
-
-
-</html>
diff --git a/turniej/urls.py b/turniej/urls.py
deleted file mode 100644 (file)
index eafb8c9..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-from django.conf.urls import include, url
-
-
-urlpatterns = [
-    url(r'^2011/', include('edition1.urls')),
-    url(r'^poezja/', include('poetry.urls')),
-    url(r'', include('edition2.urls')),
-]
diff --git a/turniej/wsgi.py b/turniej/wsgi.py
deleted file mode 100644 (file)
index f97d8fd..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-import os
-import os.path
-import sys
-
-ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-
-# Add apps and lib directories to PYTHONPATH
-sys.path = [
-    os.path.join(ROOT, 'apps'),
-] + sys.path
-
-
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "turniej.settings")
-
-# This application object is used by the development server
-# as well as any WSGI server configured to use this file.
-from django.core.wsgi import get_wsgi_application
-application = get_wsgi_application()