From: Radek Czajka
Date: Wed, 3 Apr 2019 10:37:47 +0000 (+0200)
Subject: Rearrange source.
X-Git-Url: https://git.mdrn.pl/turniej.git/commitdiff_plain/80b74642b6a6a375462d6eae7efb203981a412d6?ds=sidebyside;hp=479cb324a4cbc258f3f6de8de1025e7dccb1da2d
Rearrange source.
---
diff --git a/Makefile b/Makefile
index 434b784..ea5beb0 100644
--- 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
index e69de29..0000000
diff --git a/apps/edition1/static/edition1/bg.png b/apps/edition1/static/edition1/bg.png
deleted file mode 100644
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
index 0394bce..0000000
--- a/apps/edition1/static/edition1/style.css
+++ /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
index b851855..0000000
--- a/apps/edition1/templates/edition1/base.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- Turniej ElektrybaÅtów{% block "extratitle" %}{% endblock %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% block "body" %}{% endblock %}
-
-
-
-
-{% load piwik_tags %}
-{% tracking_code %}
-
-
-
-
diff --git a/apps/edition1/templates/edition1/home.html b/apps/edition1/templates/edition1/home.html
deleted file mode 100644
index b2159ae..0000000
--- a/apps/edition1/templates/edition1/home.html
+++ /dev/null
@@ -1,107 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-
-
-
Ostatnie wiersze:
-
-
-
-
-
-
Turniej ElektrybaÅtów
-
Konkurs automatycznej poezji
-
-
-
-
-
-
-
Znacie LeÅmianatora ?
-To niewielki skrypt miksujÄ
cy na życzenie wiersze z
-Wolnych Lektur .
-PowstaÅ jako żart, a niechcÄ
cy
-
-âodciÄ
Å siÄ od dosÅownie rozumianego dziedzictwa dadaizmu i surrealizmuâ .
-Idziemy dalej â ogÅaszamy otwarty konkurs na najlepszego automatycznego poetÄ !
-
-
Konkurs wystartowaÅ 12 wrzeÅnia 2011 roku â z okazji 90 rocznicy urodzin
-StanisÅawa Lema . Termin nadsyÅania prac upÅynÄ
Å
-10 listopada 2011 roku.
-Prezentujemy nadesÅane prace w akcji.
-Kliknij przycisk, a jeden
-z programów-uczestników napisze dla Ciebie wiersz:
-
-
Twórz-że siÄ!
-
-
Zobacz wszystkie programy . Ich kod źródÅowy
-jest dostÄpny na wolnej licencji
-â nic wiÄc nie stoi na przeszkodzie, by rozwijaÄ je dalej.
-
-
SpoÅród wygenerowanych przz nas propozycji autorzy programów wybrali po trzy utwory.
-Zobacz wiersze, które wystartowaÅy w konkursie.
-
-
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.
-
-
WiÄcej informacji:
-
-
- Przebieg konkursu â czyli jakie bÄdÄ
kolejne etapy
- i co jest nagrodÄ
?
-
- Technikalia â czyli co i jak trzeba zrobiÄ,
- żeby wziÄ
Ä udziaÅ.
-
- Regulamin â czyli trochÄ koniecznych formalnoÅci.
-
-
-
Wszelkiego rodzaju pytania i wÄ
tpliwoÅci proszÄ kierowaÄ na adres
-radoslaw.czajka@nowoczesnapolska.org.pl
-
-
-
-
-
-
-
-
-{% endblock %}
diff --git a/apps/edition1/templates/edition1/more.html b/apps/edition1/templates/edition1/more.html
deleted file mode 100644
index 1a2ca05..0000000
--- a/apps/edition1/templates/edition1/more.html
+++ /dev/null
@@ -1,65 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-
-
-Turniej ElektrybaÅtów
-
-Konkurs automatycznej poezji
-
-
- 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:
-
- â ChrzÄskrzyboczek pacionkociewiczarokrzysztofoniczmy.
- â Czy to już wszystko? â spytaÅ po dÅuższej chwili niezwykle uprzejmy
- Klapaucjusz.
- (StanisÅaw Lem, âCyberiadaâ, âWyprawa pierwsza A, czyli ElektrybaÅt Trurlaâ)
-
-
-
-
-Konkurs startuje 12 wrzeÅnia 2011 roku â z okazji 90 rocznicy urodzin
-StanisÅawa Lema . Termin nadsyÅania prac upÅywa z koÅcem października 10 listopada 2011 roku.
-Powinno byÄ doÅÄ czasu na dopracowanie swoich pomysÅów.
-
-Konkurs bÄdzie wyglÄ
daÅ nastÄpujÄ
co:
-
-
- Do koÅca października 10 listopada czekamy na zgÅoszenia w postaci programów.
- Warunkiem dopuszczalnoÅci jest udostÄpnienie kodu źródÅowego na wolnej
- licencji GNU AGPL
- (jak to zrobiÄ?) .
- Szerzej o tym, czym powinno byÄ zÅoszenie â
- w dziale Technikalia .
-
- 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.
-
- Po uruchomieniu nadesÅanych przez uczestników programów dla każdego
- uczestnika wygenerujemy 20 wierszy, które odeÅlemy autorowi
- programu. Wybierze on 3 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.
-
- 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.
-
-
-
-Programy biorÄ
ce udziaÅ w konkursie zostanÄ
też uruchomione
-na stronie Turnieju â
-internauci bÄdÄ
wiÄc mieli możliwoÅÄ samodzielnego âwyklikaniaâ sobie wÅasnego
-wiersza przy użyciu każdego z nich.
-
-Powrót do strony gÅównej
-
-{% endblock %}
diff --git a/apps/edition1/templates/edition1/rules.html b/apps/edition1/templates/edition1/rules.html
deleted file mode 100644
index 00187cc..0000000
--- a/apps/edition1/templates/edition1/rules.html
+++ /dev/null
@@ -1,74 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-
-
-
-Turniej ElektrybaÅtów
-Konkurs automatycznej poezji
-
-
- 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.
-
- (StanisÅaw Lem, âCyberiadaâ, âWyprawa pierwsza A, czyli ElektrybaÅt Trurlaâ)
-
-
-
-
-Regulamin konkursu
-
-
-
-
-
- Organizatorem konkursu jest fundacja Nowoczesna Polska.
-
- 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 GNU AGPL
- (jak to zrobiÄ?) .
-
- Konkurs trwa od 12 wrzeÅnia do 31 października 10 listopada 2011 roku.
- Konkurs ma charakter otwarty. Aby wziÄ
Ä w nim udziaÅ udziaÅ,
- należy wysÅaÄ gotowy program na adres
- radoslaw.czajka@nowoczesnapolska.org.pl
-
- z klauzulÄ
:
- ZgÅaszam siÄ do konkursu âTurniej ElektrybaÅtówâ i oÅwiadczam, że
- znam i akceptujÄ jego regulamin .
-
- NagrodÄ
gÅównÄ
jest 16-tomowa kolekcja dzieÅ StanisÅawa Lema. Nie ma
- możliwoÅci zamiany nagrody na jej równowartoÅÄ pieniÄżnÄ
.
-
- 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.
-
- 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.
-
- 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.
-
- Organizator zatrzega sobie prawo wprowadzenia zmian w regulaminie
- konkursu.
-
-
-
-
-
-Powrót do strony gÅównej
-
-{% endblock %}
diff --git a/apps/edition1/templates/edition1/technical.html b/apps/edition1/templates/edition1/technical.html
deleted file mode 100644
index ada8028..0000000
--- a/apps/edition1/templates/edition1/technical.html
+++ /dev/null
@@ -1,115 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-
-
-Turniej ElektrybaÅtów
-Konkurs automatycznej poezji
-
-
- 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Ä.
-
- (StanisÅaw Lem, âCyberiadaâ, âWyprawa pierwsza A, czyli ElektrybaÅt Trurlaâ)
-
-
-
-
-Wymogi wobec zgÅaszanych programów
-
-
- 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.
-
- Warunkiem dopuszczalnoÅci jest udostÄpnienie kodu źródÅowego na wolnej
- licencji GNU AGPL
-
- (jak to zrobiÄ?)
- 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.
-
- 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
- naprawdÄ 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.
-
- 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
- [sic!] ,
- ale w razie potrzeby bÄdziemy siÄ starali byÄ elastyczni.
-
- 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).
-
- 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.
-
- Odrzucone zostana programy, które bÄdÄ
usiÅowaÅy w jakikolwiek
- sposób zagroziÄ stabilnoÅci lub bezpieczeÅstwu serwera.
-
-
-
-W jaki sposób pobieraÄ utwory?
-
-ŹródÅowe utwory można pobieraÄ na kilka sposobów:
-
-
-
-Wszystkie pliki źródÅowe sÄ
zapisane przy użyciu kodowania UTF-8.
-
-PrzykÅadowy program (napisany w Pythonie), obrazujÄ
cy wykorzystanie
-każdego z tych sposobów, można znaleźÄ
-w naszym repozytorium na GitHubie .
-Jest to po prostu LeÅmianator â w wersji przygotowanej zgodnie z warunkami
-turnieju.
-
-
-Gdzie wysyÅaÄ zgÅoszenia?
-
-ZgÅoszenia, a także wszelkiego rodzaju pytania i wÄ
tpliwoÅci prosimy kierowaÄ na adres
-radoslaw.czajka@nowoczesnapolska.org.pl .
-Prosimy też o doÅÄ
czenie do każdego zgÅoszenia klauzuli o treÅci:
-ZgÅaszam siÄ do konkursu âTurniej ElektrybaÅtówâ i oÅwiadczam, że
-znam i akceptujÄ jego regulamin .
-
-
-
-
-
-
-Powrót do strony gÅównej
-
-
-{% endblock %}
-
diff --git a/apps/edition1/urls.py b/apps/edition1/urls.py
deleted file mode 100644
index 76dadd5..0000000
--- a/apps/edition1/urls.py
+++ /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
index 6d35feb..0000000
--- a/apps/edition1/views.py
+++ /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
index e69de29..0000000
diff --git a/apps/edition2/static/edition2/style.css b/apps/edition2/static/edition2/style.css
deleted file mode 100644
index 4bee9cf..0000000
--- a/apps/edition2/static/edition2/style.css
+++ /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
index fbb7a81..0000000
--- a/apps/edition2/templates/edition2/base.html
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
- Turniej Wolnych Lektur{% block "extratitle" %}{% endblock %}
-
-
-
-
-
-
-
-
-
-
-{% block "body" %}{% endblock %}
-
-
-
-
-
-
-
-
-{% load piwik_tags %}
-{% tracking_code %}
-
-
-
-
diff --git a/apps/edition2/templates/edition2/home.html b/apps/edition2/templates/edition2/home.html
deleted file mode 100644
index dcac65d..0000000
--- a/apps/edition2/templates/edition2/home.html
+++ /dev/null
@@ -1,31 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-
-
-
-
-
-
-
II Turniej Wolnych Lektur
-
Edycja wizualna
-
- {% load fnp_share %}
- {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
-
-
-
-
ZdecydowaliÅmy siÄ nie rozstrzygaÄ II edycji Turnieju Wolnych Lektur
-ze wzglÄdu na niewystarczajÄ
cÄ
liczbÄ i poziom zgÅoszeÅ.
-
-
Zobacz wyniki pierwszej edycji â Turnieju ElektrybaÅtów .
-
-
-
Wszelkie pytania i wÄ
tpliwoÅci proszÄ kierowaÄ na adres
-turniej@nowoczesnapolska.org.pl
-
-
-
-
-
-{% endblock %}
diff --git a/apps/edition2/templates/edition2/more.html b/apps/edition2/templates/edition2/more.html
deleted file mode 100644
index 85a6689..0000000
--- a/apps/edition2/templates/edition2/more.html
+++ /dev/null
@@ -1,43 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-
-
-
-
- II Turniej Wolnych Lektur
-Edycja wizualna
-
- {% load fnp_share %}
- {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
-
-
-
-
-
-Konkurs startuje 4 stycznia 2013 roku. Termin nadsyÅania prac upÅywa 15 22 lutego 2013 roku.
-Powinno byÄ doÅÄ czasu na dopracowanie swoich pomysÅów.
-
-Przebieg konkursu:
-
-
- Konkurs startuje 4 stycznia 2013 roku.
- Termin nadsyÅania prac upÅywa 15 22 lutego 2013 roku.
- Warunkiem dopuszczenia do konkursu jest udostÄpnienie swojego zgÅoszenia
- (w przypadku zgÅoszenia programu â kodu źródÅowego) na
- wolnej licencji .
- Informacje o tym, jak to zrobiÄ, znajdujÄ
siÄ np. na stronach
- projektu GNU
- czy Creative Commons .
- 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.
- Do koÅca lutego jury konkursowe wybierze zwyciÄ
zcÄ konkursu.
- GÅównÄ
nagrodÄ
jest czytnik e-booków Amazon Kindle z kompletem
- ksiÄ
żek z Wolnych Lektur w formacie MOBI.
-
-
-Powrót do strony gÅównej
-
-{% endblock %}
diff --git a/apps/edition2/templates/edition2/rules.html b/apps/edition2/templates/edition2/rules.html
deleted file mode 100644
index cb3a692..0000000
--- a/apps/edition2/templates/edition2/rules.html
+++ /dev/null
@@ -1,70 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-
-
-
-
-
- II Turniej Wolnych Lektur
-Edycja wizualna
-
- {% load fnp_share %}
- {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
-
-
-
-
-
-Regulamin konkursu
-
-
-
- Organizatorem konkursu jest fundacja Nowoczesna Polska.
-
- 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
- wolnej licencji .
- Wizualizacje muszÄ
byÄ dostÄpne
- w otwartym formacie .
-
- Konkurs trwa od 4 stycznia do 15 22 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
- turniej@nowoczesnapolska.org.pl
- z klauzulÄ
:
- ZgÅaszam siÄ do konkursu âII Turniej Wolnych Lekturâ i oÅwiadczam, że
- znam i akceptujÄ jego regulamin .
-
- 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Ä
.
-
- 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.
-
- 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.
-
- 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.
-
- Organizator zatrzega sobie prawo wprowadzenia zmian w regulaminie
- konkursu.
-
-
-
-
-
-Powrót do strony gÅównej
-
-{% endblock %}
diff --git a/apps/edition2/templates/edition2/technical.html b/apps/edition2/templates/edition2/technical.html
deleted file mode 100644
index bb55b09..0000000
--- a/apps/edition2/templates/edition2/technical.html
+++ /dev/null
@@ -1,61 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-
-
-
-
-
- II Turniej Wolnych Lektur
-Edycja wizualna
-
- {% load fnp_share %}
- {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
-
-
-
-Wymogi techniczne wobec zgÅoszeÅ
-
-
- 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.
-
- Warunkiem dopuszczenia do konkursu jest udostÄpnienie swojego zgÅoszenia
- (w przypadku zgÅoszenia programu â jego kodu źródÅowego) na
- wolnej licencji .
- Informacje o tym, jak to zrobiÄ, znajdujÄ
siÄ np. na stronach
- projektu GNU
- czy Creative Commons .
-
- Wizualizacja powinna dotyczyÄ zasobów
- Wolnych Lektur .
- 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 prosty teatrzyk
- na podstawie pliku XML wyÅwietlajÄ
cy âRomea i JuliÄâ w postaci animacji SVG.
-
- 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.
-
-
-
-Gdzie wysyÅaÄ zgÅoszenia?
-
-ZgÅoszenia, a także wszelkiego rodzaju pytania i wÄ
tpliwoÅci prosimy kierowaÄ na adres
-turniej@nowoczesnapolska.org.pl .
-Prosimy też o doÅÄ
czenie do każdego zgÅoszenia klauzuli o treÅci:
-ZgÅaszam siÄ do konkursu âII Turniej Wolnych Lekturâ i oÅwiadczam, że
- znam i akceptujÄ jego regulamin .
-
-
-
-
-
-
-Powrót do strony gÅównej
-
-
-{% endblock %}
-
diff --git a/apps/edition2/urls.py b/apps/edition2/urls.py
deleted file mode 100755
index 0cb0f57..0000000
--- a/apps/edition2/urls.py
+++ /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
index e69de29..0000000
diff --git a/apps/poetry/migrations/0001_initial.py b/apps/poetry/migrations/0001_initial.py
deleted file mode 100644
index 81c630c..0000000
--- a/apps/poetry/migrations/0001_initial.py
+++ /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
index e69de29..0000000
diff --git a/apps/poetry/models.py b/apps/poetry/models.py
deleted file mode 100644
index 58b8caf..0000000
--- a/apps/poetry/models.py
+++ /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
index e2f6f01..0000000
--- a/apps/poetry/static/poetry/poem.css
+++ /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
index 9852c75..0000000
--- a/apps/poetry/templates/poetry/contest.html
+++ /dev/null
@@ -1,38 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-
-
-Turniej ElektrybaÅtów: utwory wybrane do konkursu
-
-
-
-
-
-{% for poet in poets %}
-
-
- {% for poem in poet.contest_poems %}
- {{ poem }}
- {% endfor %}
-
-{% endfor %}
-
-
-{% endblock %}
diff --git a/apps/poetry/templates/poetry/main.html b/apps/poetry/templates/poetry/main.html
deleted file mode 100644
index 6234003..0000000
--- a/apps/poetry/templates/poetry/main.html
+++ /dev/null
@@ -1,54 +0,0 @@
-{% extends "edition1/base.html" %}
-
-{% block "body" %}
-
-
-
-Turniej ElektrybaÅtów
-
-
-
-Uczestnicy:
-
-
-
-
-Twórz-że siÄ!
-
-
-
-SpoÅród wygenerowanych przz nas propozycji autorzy programów wybrali po trzy utwory.
-Zobacz wiersze startujÄ
ce w konkursie!
-
-
-
-
-
-Ostatnio opublikowane utwory:
-
-{% for poem in last %}
- {{ poem }}
-{% endfor %}
-
-
-{% endblock %}
diff --git a/apps/poetry/templates/poetry/poem.html b/apps/poetry/templates/poetry/poem.html
deleted file mode 100644
index 0ac6b3c..0000000
--- a/apps/poetry/templates/poetry/poem.html
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
- Turniej ElektrybaÅtów: {{ poem }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ poem.poet.name }}
- {% if poem.title %}{{ poem.title }}{% else %}***{% endif %}
-
- {{ poem.text|linebreaksbr }}
-
-
-
-{% load piwik_tags %}
-{% tracking_code %}
-
-
-
-
-
-
diff --git a/apps/poetry/templates/poetry/poet.html b/apps/poetry/templates/poetry/poet.html
deleted file mode 100644
index 7947a66..0000000
--- a/apps/poetry/templates/poetry/poet.html
+++ /dev/null
@@ -1,58 +0,0 @@
-{% extends "edition1/base.html" %}
-
-
-{% block "extratitle" %}: {{ poet.name }}{% endblock %}
-
-
-{% block "body" %}
-
-
-
-{{ poet.name }}
-
-
-
-
Zobacz wszystkich autorów.
-
-
-
-
Autor programu: {{ poet.author }}
-
-{{ poet.description|linebreaks }}
-
-
Kod źródÅowy: {{ poet.url }}
-
-
Twórz-że!
-
-
-
-
-
-{% for poem in in_contest %}
- {{ poem }}
-{% endfor %}
-
-
-
Ostatnio opublikowane utwory:
-
-{% for poem in last %}
- {{ poem }}
-{% endfor %}
-
-
-{% endblock %}
diff --git a/apps/poetry/urls.py b/apps/poetry/urls.py
deleted file mode 100644
index eb9b4f3..0000000
--- a/apps/poetry/urls.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from django.conf.urls import url
-from . import views
-
-
-urlpatterns = [
- url(r'^wiersz/(?P
[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[a-zA-Z0-9-]+)/$", views.poet, name="poetry_poet"),
- url(r"^(?P[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
index 6366f08..0000000
--- a/apps/poetry/utils.py
+++ /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
index 71309d7..0000000
--- a/apps/poetry/views.py
+++ /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
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
index 0000000..e69de29
diff --git a/src/core/localsettings.py.template b/src/core/localsettings.py.template
new file mode 100644
index 0000000..4345fcd
--- /dev/null
+++ b/src/core/localsettings.py.template
@@ -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
index 0000000..37976da
--- /dev/null
+++ b/src/core/settings.py
@@ -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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
index 0000000..b94665c
--- /dev/null
+++ b/src/core/static/js/jquery.countdown-pl.js
@@ -0,0 +1,18 @@
+/* http://keith-wood.name/countdown.html
+ * Polish initialisation for the jQuery countdown extension
+ * Written by Pawel Lewtak lewtak@gmail.com (2008) */
+(function($) {
+ $.countdown.regional['pl'] = {
+ labels: ['lat', 'miesiÄcy', 'tygodni', 'dni', 'godzin', 'minut', 'sekund'],
+ labels1: ['rok', 'miesiÄ
c', 'tydzieÅ', 'dzieÅ', 'godzina', 'minuta', 'sekunda'],
+ labels2: ['lata', 'miesiÄ
ce', 'tygodnie', 'dni', 'godziny', 'minuty', 'sekundy'],
+ compactLabels: ['l', 'm', 't', 'd'], compactLabels1: ['r', 'm', 't', 'd'],
+ whichLabels: function(amount) {
+ var units = amount % 10;
+ var tens = Math.floor((amount % 100) / 10);
+ return (amount == 1 ? 1 : (units >= 2 && units <= 4 && tens != 1 ? 2 : 0));
+ },
+ digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
+ timeSeparator: ':', isRTL: false};
+ $.countdown.setDefaults($.countdown.regional['pl']);
+})(jQuery);
diff --git a/src/core/static/js/jquery.countdown.css b/src/core/static/js/jquery.countdown.css
new file mode 100644
index 0000000..f47784b
--- /dev/null
+++ b/src/core/static/js/jquery.countdown.css
@@ -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
index 0000000..ebd1314
--- /dev/null
+++ b/src/core/static/js/jquery.countdown.min.js
@@ -0,0 +1,6 @@
+/* http://keith-wood.name/countdown.html
+ Countdown for jQuery v1.6.1.
+ Written by Keith Wood (kbwood{at}iinet.com.au) January 2008.
+ Available under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license.
+ Please attribute the author if you use it. */
+(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._sincef)){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._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;i0);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])?''+''+d._translateDigits(c,c._periods[a])+' '+(b?b[a]:k[a])+' ':'')};return(c.options.layout?this._buildLayout(c,h,c.options.layout,c.options.compact,c.options.significant,j):((c.options.compact?''+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):''):''+n(Y)+n(O)+n(W)+n(D)+n(H)+n(M)+n(S))+' '+(c.options.description?''+c.options.description+' ':'')))},_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._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()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
index 0000000..1189e68
--- /dev/null
+++ b/src/core/templates/404.html
@@ -0,0 +1,8 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+Nie znaleziono strony
+
+Nie ma tu żadnej strony. Przejdź do strony gÅównej .
+
+{% endblock %}
diff --git a/src/core/templates/500.html b/src/core/templates/500.html
new file mode 100644
index 0000000..5ce19fc
--- /dev/null
+++ b/src/core/templates/500.html
@@ -0,0 +1,8 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+BÅÄ
d
+
+WystÄ
piÅ bÅÄ
d serwera. Przepraszamy!
+
+{% endblock %}
diff --git a/src/core/templates/base.html b/src/core/templates/base.html
new file mode 100644
index 0000000..132e4f3
--- /dev/null
+++ b/src/core/templates/base.html
@@ -0,0 +1,38 @@
+
+
+
+ Turniej ElektrybaÅtów{% block "extratitle" %}{% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block "body" %}{% endblock %}
+
+
+
+
+{% load piwik_tags %}
+{% tracking_code %}
+
+
+
+
diff --git a/src/core/urls.py b/src/core/urls.py
new file mode 100644
index 0000000..eafb8c9
--- /dev/null
+++ b/src/core/urls.py
@@ -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
index 0000000..b580220
--- /dev/null
+++ b/src/core/wsgi.py
@@ -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
index 0000000..e69de29
diff --git a/src/edition1/static/edition1/bg.png b/src/edition1/static/edition1/bg.png
new file mode 100644
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
index 0000000..0394bce
--- /dev/null
+++ b/src/edition1/static/edition1/style.css
@@ -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
index 0000000..b851855
--- /dev/null
+++ b/src/edition1/templates/edition1/base.html
@@ -0,0 +1,39 @@
+
+
+
+ Turniej ElektrybaÅtów{% block "extratitle" %}{% endblock %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block "body" %}{% endblock %}
+
+
+
+
+{% load piwik_tags %}
+{% tracking_code %}
+
+
+
+
diff --git a/src/edition1/templates/edition1/home.html b/src/edition1/templates/edition1/home.html
new file mode 100644
index 0000000..b2159ae
--- /dev/null
+++ b/src/edition1/templates/edition1/home.html
@@ -0,0 +1,107 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+
+
+
Ostatnie wiersze:
+
+
+
+
+
+
Turniej ElektrybaÅtów
+
Konkurs automatycznej poezji
+
+
+
+
+
+
+
Znacie LeÅmianatora ?
+To niewielki skrypt miksujÄ
cy na życzenie wiersze z
+Wolnych Lektur .
+PowstaÅ jako żart, a niechcÄ
cy
+
+âodciÄ
Å siÄ od dosÅownie rozumianego dziedzictwa dadaizmu i surrealizmuâ .
+Idziemy dalej â ogÅaszamy otwarty konkurs na najlepszego automatycznego poetÄ !
+
+
Konkurs wystartowaÅ 12 wrzeÅnia 2011 roku â z okazji 90 rocznicy urodzin
+StanisÅawa Lema . Termin nadsyÅania prac upÅynÄ
Å
+10 listopada 2011 roku.
+Prezentujemy nadesÅane prace w akcji.
+Kliknij przycisk, a jeden
+z programów-uczestników napisze dla Ciebie wiersz:
+
+
Twórz-że siÄ!
+
+
Zobacz wszystkie programy . Ich kod źródÅowy
+jest dostÄpny na wolnej licencji
+â nic wiÄc nie stoi na przeszkodzie, by rozwijaÄ je dalej.
+
+
SpoÅród wygenerowanych przz nas propozycji autorzy programów wybrali po trzy utwory.
+Zobacz wiersze, które wystartowaÅy w konkursie.
+
+
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.
+
+
WiÄcej informacji:
+
+
+ Przebieg konkursu â czyli jakie bÄdÄ
kolejne etapy
+ i co jest nagrodÄ
?
+
+ Technikalia â czyli co i jak trzeba zrobiÄ,
+ żeby wziÄ
Ä udziaÅ.
+
+ Regulamin â czyli trochÄ koniecznych formalnoÅci.
+
+
+
Wszelkiego rodzaju pytania i wÄ
tpliwoÅci proszÄ kierowaÄ na adres
+radoslaw.czajka@nowoczesnapolska.org.pl
+
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/src/edition1/templates/edition1/more.html b/src/edition1/templates/edition1/more.html
new file mode 100644
index 0000000..1a2ca05
--- /dev/null
+++ b/src/edition1/templates/edition1/more.html
@@ -0,0 +1,65 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+
+
+Turniej ElektrybaÅtów
+
+Konkurs automatycznej poezji
+
+
+ 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:
+
+ â ChrzÄskrzyboczek pacionkociewiczarokrzysztofoniczmy.
+ â Czy to już wszystko? â spytaÅ po dÅuższej chwili niezwykle uprzejmy
+ Klapaucjusz.
+ (StanisÅaw Lem, âCyberiadaâ, âWyprawa pierwsza A, czyli ElektrybaÅt Trurlaâ)
+
+
+
+
+Konkurs startuje 12 wrzeÅnia 2011 roku â z okazji 90 rocznicy urodzin
+StanisÅawa Lema . Termin nadsyÅania prac upÅywa z koÅcem października 10 listopada 2011 roku.
+Powinno byÄ doÅÄ czasu na dopracowanie swoich pomysÅów.
+
+Konkurs bÄdzie wyglÄ
daÅ nastÄpujÄ
co:
+
+
+ Do koÅca października 10 listopada czekamy na zgÅoszenia w postaci programów.
+ Warunkiem dopuszczalnoÅci jest udostÄpnienie kodu źródÅowego na wolnej
+ licencji GNU AGPL
+ (jak to zrobiÄ?) .
+ Szerzej o tym, czym powinno byÄ zÅoszenie â
+ w dziale Technikalia .
+
+ 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.
+
+ Po uruchomieniu nadesÅanych przez uczestników programów dla każdego
+ uczestnika wygenerujemy 20 wierszy, które odeÅlemy autorowi
+ programu. Wybierze on 3 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.
+
+ 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.
+
+
+
+Programy biorÄ
ce udziaÅ w konkursie zostanÄ
też uruchomione
+na stronie Turnieju â
+internauci bÄdÄ
wiÄc mieli możliwoÅÄ samodzielnego âwyklikaniaâ sobie wÅasnego
+wiersza przy użyciu każdego z nich.
+
+Powrót do strony gÅównej
+
+{% endblock %}
diff --git a/src/edition1/templates/edition1/rules.html b/src/edition1/templates/edition1/rules.html
new file mode 100644
index 0000000..00187cc
--- /dev/null
+++ b/src/edition1/templates/edition1/rules.html
@@ -0,0 +1,74 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+
+
+
+Turniej ElektrybaÅtów
+Konkurs automatycznej poezji
+
+
+ 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.
+
+ (StanisÅaw Lem, âCyberiadaâ, âWyprawa pierwsza A, czyli ElektrybaÅt Trurlaâ)
+
+
+
+
+Regulamin konkursu
+
+
+
+
+
+ Organizatorem konkursu jest fundacja Nowoczesna Polska.
+
+ 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 GNU AGPL
+ (jak to zrobiÄ?) .
+
+ Konkurs trwa od 12 wrzeÅnia do 31 października 10 listopada 2011 roku.
+ Konkurs ma charakter otwarty. Aby wziÄ
Ä w nim udziaÅ udziaÅ,
+ należy wysÅaÄ gotowy program na adres
+ radoslaw.czajka@nowoczesnapolska.org.pl
+
+ z klauzulÄ
:
+ ZgÅaszam siÄ do konkursu âTurniej ElektrybaÅtówâ i oÅwiadczam, że
+ znam i akceptujÄ jego regulamin .
+
+ NagrodÄ
gÅównÄ
jest 16-tomowa kolekcja dzieÅ StanisÅawa Lema. Nie ma
+ możliwoÅci zamiany nagrody na jej równowartoÅÄ pieniÄżnÄ
.
+
+ 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.
+
+ 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.
+
+ 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.
+
+ Organizator zatrzega sobie prawo wprowadzenia zmian w regulaminie
+ konkursu.
+
+
+
+
+
+Powrót do strony gÅównej
+
+{% endblock %}
diff --git a/src/edition1/templates/edition1/technical.html b/src/edition1/templates/edition1/technical.html
new file mode 100644
index 0000000..ada8028
--- /dev/null
+++ b/src/edition1/templates/edition1/technical.html
@@ -0,0 +1,115 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+
+
+Turniej ElektrybaÅtów
+Konkurs automatycznej poezji
+
+
+ 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Ä.
+
+ (StanisÅaw Lem, âCyberiadaâ, âWyprawa pierwsza A, czyli ElektrybaÅt Trurlaâ)
+
+
+
+
+Wymogi wobec zgÅaszanych programów
+
+
+ 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.
+
+ Warunkiem dopuszczalnoÅci jest udostÄpnienie kodu źródÅowego na wolnej
+ licencji GNU AGPL
+
+ (jak to zrobiÄ?)
+ 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.
+
+ 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
+ naprawdÄ 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.
+
+ 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
+ [sic!] ,
+ ale w razie potrzeby bÄdziemy siÄ starali byÄ elastyczni.
+
+ 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).
+
+ 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.
+
+ Odrzucone zostana programy, które bÄdÄ
usiÅowaÅy w jakikolwiek
+ sposób zagroziÄ stabilnoÅci lub bezpieczeÅstwu serwera.
+
+
+
+W jaki sposób pobieraÄ utwory?
+
+ŹródÅowe utwory można pobieraÄ na kilka sposobów:
+
+
+
+Wszystkie pliki źródÅowe sÄ
zapisane przy użyciu kodowania UTF-8.
+
+PrzykÅadowy program (napisany w Pythonie), obrazujÄ
cy wykorzystanie
+każdego z tych sposobów, można znaleźÄ
+w naszym repozytorium na GitHubie .
+Jest to po prostu LeÅmianator â w wersji przygotowanej zgodnie z warunkami
+turnieju.
+
+
+Gdzie wysyÅaÄ zgÅoszenia?
+
+ZgÅoszenia, a także wszelkiego rodzaju pytania i wÄ
tpliwoÅci prosimy kierowaÄ na adres
+radoslaw.czajka@nowoczesnapolska.org.pl .
+Prosimy też o doÅÄ
czenie do każdego zgÅoszenia klauzuli o treÅci:
+ZgÅaszam siÄ do konkursu âTurniej ElektrybaÅtówâ i oÅwiadczam, że
+znam i akceptujÄ jego regulamin .
+
+
+
+
+
+
+Powrót do strony gÅównej
+
+
+{% endblock %}
+
diff --git a/src/edition1/urls.py b/src/edition1/urls.py
new file mode 100644
index 0000000..76dadd5
--- /dev/null
+++ b/src/edition1/urls.py
@@ -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
index 0000000..6d35feb
--- /dev/null
+++ b/src/edition1/views.py
@@ -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
index 0000000..e69de29
diff --git a/src/edition2/static/edition2/style.css b/src/edition2/static/edition2/style.css
new file mode 100644
index 0000000..4bee9cf
--- /dev/null
+++ b/src/edition2/static/edition2/style.css
@@ -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
index 0000000..fbb7a81
--- /dev/null
+++ b/src/edition2/templates/edition2/base.html
@@ -0,0 +1,32 @@
+
+
+
+ Turniej Wolnych Lektur{% block "extratitle" %}{% endblock %}
+
+
+
+
+
+
+
+
+
+
+{% block "body" %}{% endblock %}
+
+
+
+
+
+
+
+
+{% load piwik_tags %}
+{% tracking_code %}
+
+
+
+
diff --git a/src/edition2/templates/edition2/home.html b/src/edition2/templates/edition2/home.html
new file mode 100644
index 0000000..dcac65d
--- /dev/null
+++ b/src/edition2/templates/edition2/home.html
@@ -0,0 +1,31 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+
+
+
+
+
+
+
II Turniej Wolnych Lektur
+
Edycja wizualna
+
+ {% load fnp_share %}
+ {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
+
+
+
+
ZdecydowaliÅmy siÄ nie rozstrzygaÄ II edycji Turnieju Wolnych Lektur
+ze wzglÄdu na niewystarczajÄ
cÄ
liczbÄ i poziom zgÅoszeÅ.
+
+
Zobacz wyniki pierwszej edycji â Turnieju ElektrybaÅtów .
+
+
+
Wszelkie pytania i wÄ
tpliwoÅci proszÄ kierowaÄ na adres
+turniej@nowoczesnapolska.org.pl
+
+
+
+
+
+{% endblock %}
diff --git a/src/edition2/templates/edition2/more.html b/src/edition2/templates/edition2/more.html
new file mode 100644
index 0000000..85a6689
--- /dev/null
+++ b/src/edition2/templates/edition2/more.html
@@ -0,0 +1,43 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+
+
+
+
+ II Turniej Wolnych Lektur
+Edycja wizualna
+
+ {% load fnp_share %}
+ {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
+
+
+
+
+
+Konkurs startuje 4 stycznia 2013 roku. Termin nadsyÅania prac upÅywa 15 22 lutego 2013 roku.
+Powinno byÄ doÅÄ czasu na dopracowanie swoich pomysÅów.
+
+Przebieg konkursu:
+
+
+ Konkurs startuje 4 stycznia 2013 roku.
+ Termin nadsyÅania prac upÅywa 15 22 lutego 2013 roku.
+ Warunkiem dopuszczenia do konkursu jest udostÄpnienie swojego zgÅoszenia
+ (w przypadku zgÅoszenia programu â kodu źródÅowego) na
+ wolnej licencji .
+ Informacje o tym, jak to zrobiÄ, znajdujÄ
siÄ np. na stronach
+ projektu GNU
+ czy Creative Commons .
+ 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.
+ Do koÅca lutego jury konkursowe wybierze zwyciÄ
zcÄ konkursu.
+ GÅównÄ
nagrodÄ
jest czytnik e-booków Amazon Kindle z kompletem
+ ksiÄ
żek z Wolnych Lektur w formacie MOBI.
+
+
+Powrót do strony gÅównej
+
+{% endblock %}
diff --git a/src/edition2/templates/edition2/rules.html b/src/edition2/templates/edition2/rules.html
new file mode 100644
index 0000000..cb3a692
--- /dev/null
+++ b/src/edition2/templates/edition2/rules.html
@@ -0,0 +1,70 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+
+
+
+
+
+ II Turniej Wolnych Lektur
+Edycja wizualna
+
+ {% load fnp_share %}
+ {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
+
+
+
+
+
+Regulamin konkursu
+
+
+
+ Organizatorem konkursu jest fundacja Nowoczesna Polska.
+
+ 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
+ wolnej licencji .
+ Wizualizacje muszÄ
byÄ dostÄpne
+ w otwartym formacie .
+
+ Konkurs trwa od 4 stycznia do 15 22 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
+ turniej@nowoczesnapolska.org.pl
+ z klauzulÄ
:
+ ZgÅaszam siÄ do konkursu âII Turniej Wolnych Lekturâ i oÅwiadczam, że
+ znam i akceptujÄ jego regulamin .
+
+ 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Ä
.
+
+ 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.
+
+ 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.
+
+ 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.
+
+ Organizator zatrzega sobie prawo wprowadzenia zmian w regulaminie
+ konkursu.
+
+
+
+
+
+Powrót do strony gÅównej
+
+{% endblock %}
diff --git a/src/edition2/templates/edition2/technical.html b/src/edition2/templates/edition2/technical.html
new file mode 100644
index 0000000..bb55b09
--- /dev/null
+++ b/src/edition2/templates/edition2/technical.html
@@ -0,0 +1,61 @@
+{% extends "edition2/base.html" %}
+
+{% block "body" %}
+
+
+
+
+
+ II Turniej Wolnych Lektur
+Edycja wizualna
+
+ {% load fnp_share %}
+ {% share 'http://turniej.wolnelektury.pl' 'Turniej Wolnych Lektur' %}
+
+
+
+Wymogi techniczne wobec zgÅoszeÅ
+
+
+ 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.
+
+ Warunkiem dopuszczenia do konkursu jest udostÄpnienie swojego zgÅoszenia
+ (w przypadku zgÅoszenia programu â jego kodu źródÅowego) na
+ wolnej licencji .
+ Informacje o tym, jak to zrobiÄ, znajdujÄ
siÄ np. na stronach
+ projektu GNU
+ czy Creative Commons .
+
+ Wizualizacja powinna dotyczyÄ zasobów
+ Wolnych Lektur .
+ 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 prosty teatrzyk
+ na podstawie pliku XML wyÅwietlajÄ
cy âRomea i JuliÄâ w postaci animacji SVG.
+
+ 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.
+
+
+
+Gdzie wysyÅaÄ zgÅoszenia?
+
+ZgÅoszenia, a także wszelkiego rodzaju pytania i wÄ
tpliwoÅci prosimy kierowaÄ na adres
+turniej@nowoczesnapolska.org.pl .
+Prosimy też o doÅÄ
czenie do każdego zgÅoszenia klauzuli o treÅci:
+ZgÅaszam siÄ do konkursu âII Turniej Wolnych Lekturâ i oÅwiadczam, że
+ znam i akceptujÄ jego regulamin .
+
+
+
+
+
+
+Powrót do strony gÅównej
+
+
+{% endblock %}
+
diff --git a/src/edition2/urls.py b/src/edition2/urls.py
new file mode 100755
index 0000000..0cb0f57
--- /dev/null
+++ b/src/edition2/urls.py
@@ -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
index 0000000..06d0ce2
--- /dev/null
+++ b/src/manage.py
@@ -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
index 0000000..e69de29
diff --git a/src/poetry/migrations/0001_initial.py b/src/poetry/migrations/0001_initial.py
new file mode 100644
index 0000000..81c630c
--- /dev/null
+++ b/src/poetry/migrations/0001_initial.py
@@ -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
index 0000000..e69de29
diff --git a/src/poetry/models.py b/src/poetry/models.py
new file mode 100644
index 0000000..58b8caf
--- /dev/null
+++ b/src/poetry/models.py
@@ -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
index 0000000..e2f6f01
--- /dev/null
+++ b/src/poetry/static/poetry/poem.css
@@ -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
index 0000000..9852c75
--- /dev/null
+++ b/src/poetry/templates/poetry/contest.html
@@ -0,0 +1,38 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+
+
+Turniej ElektrybaÅtów: utwory wybrane do konkursu
+
+
+
+
+
+{% for poet in poets %}
+
+
+ {% for poem in poet.contest_poems %}
+ {{ poem }}
+ {% endfor %}
+
+{% endfor %}
+
+
+{% endblock %}
diff --git a/src/poetry/templates/poetry/main.html b/src/poetry/templates/poetry/main.html
new file mode 100644
index 0000000..6234003
--- /dev/null
+++ b/src/poetry/templates/poetry/main.html
@@ -0,0 +1,54 @@
+{% extends "edition1/base.html" %}
+
+{% block "body" %}
+
+
+
+Turniej ElektrybaÅtów
+
+
+
+Uczestnicy:
+
+
+
+
+Twórz-że siÄ!
+
+
+
+SpoÅród wygenerowanych przz nas propozycji autorzy programów wybrali po trzy utwory.
+Zobacz wiersze startujÄ
ce w konkursie!
+
+
+
+
+
+Ostatnio opublikowane utwory:
+
+{% for poem in last %}
+ {{ poem }}
+{% endfor %}
+
+
+{% endblock %}
diff --git a/src/poetry/templates/poetry/poem.html b/src/poetry/templates/poetry/poem.html
new file mode 100644
index 0000000..0ac6b3c
--- /dev/null
+++ b/src/poetry/templates/poetry/poem.html
@@ -0,0 +1,87 @@
+
+
+
+ Turniej ElektrybaÅtów: {{ poem }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ poem.poet.name }}
+ {% if poem.title %}{{ poem.title }}{% else %}***{% endif %}
+
+ {{ poem.text|linebreaksbr }}
+
+
+
+{% load piwik_tags %}
+{% tracking_code %}
+
+
+
+
+
+
diff --git a/src/poetry/templates/poetry/poet.html b/src/poetry/templates/poetry/poet.html
new file mode 100644
index 0000000..7947a66
--- /dev/null
+++ b/src/poetry/templates/poetry/poet.html
@@ -0,0 +1,58 @@
+{% extends "edition1/base.html" %}
+
+
+{% block "extratitle" %}: {{ poet.name }}{% endblock %}
+
+
+{% block "body" %}
+
+
+
+{{ poet.name }}
+
+
+
+
Zobacz wszystkich autorów.
+
+
+
+
Autor programu: {{ poet.author }}
+
+{{ poet.description|linebreaks }}
+
+
Kod źródÅowy: {{ poet.url }}
+
+
Twórz-że!
+
+
+
+
+
+{% for poem in in_contest %}
+ {{ poem }}
+{% endfor %}
+
+
+
Ostatnio opublikowane utwory:
+
+{% for poem in last %}
+ {{ poem }}
+{% endfor %}
+
+
+{% endblock %}
diff --git a/src/poetry/urls.py b/src/poetry/urls.py
new file mode 100644
index 0000000..eb9b4f3
--- /dev/null
+++ b/src/poetry/urls.py
@@ -0,0 +1,13 @@
+from django.conf.urls import url
+from . import views
+
+
+urlpatterns = [
+ url(r'^wiersz/(?P
[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[a-zA-Z0-9-]+)/$", views.poet, name="poetry_poet"),
+ url(r"^(?P[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
index 0000000..6366f08
--- /dev/null
+++ b/src/poetry/utils.py
@@ -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
index 0000000..71309d7
--- /dev/null
+++ b/src/poetry/views.py
@@ -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
index e69de29..0000000
diff --git a/turniej/localsettings.py.template b/turniej/localsettings.py.template
deleted file mode 100644
index 3765080..0000000
--- a/turniej/localsettings.py.template
+++ /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
index 03e2586..0000000
--- a/turniej/settings.py
+++ /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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
index b94665c..0000000
--- a/turniej/static/js/jquery.countdown-pl.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/* http://keith-wood.name/countdown.html
- * Polish initialisation for the jQuery countdown extension
- * Written by Pawel Lewtak lewtak@gmail.com (2008) */
-(function($) {
- $.countdown.regional['pl'] = {
- labels: ['lat', 'miesiÄcy', 'tygodni', 'dni', 'godzin', 'minut', 'sekund'],
- labels1: ['rok', 'miesiÄ
c', 'tydzieÅ', 'dzieÅ', 'godzina', 'minuta', 'sekunda'],
- labels2: ['lata', 'miesiÄ
ce', 'tygodnie', 'dni', 'godziny', 'minuty', 'sekundy'],
- compactLabels: ['l', 'm', 't', 'd'], compactLabels1: ['r', 'm', 't', 'd'],
- whichLabels: function(amount) {
- var units = amount % 10;
- var tens = Math.floor((amount % 100) / 10);
- return (amount == 1 ? 1 : (units >= 2 && units <= 4 && tens != 1 ? 2 : 0));
- },
- digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
- timeSeparator: ':', isRTL: false};
- $.countdown.setDefaults($.countdown.regional['pl']);
-})(jQuery);
diff --git a/turniej/static/js/jquery.countdown.css b/turniej/static/js/jquery.countdown.css
deleted file mode 100644
index f47784b..0000000
--- a/turniej/static/js/jquery.countdown.css
+++ /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
index ebd1314..0000000
--- a/turniej/static/js/jquery.countdown.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/* http://keith-wood.name/countdown.html
- Countdown for jQuery v1.6.1.
- Written by Keith Wood (kbwood{at}iinet.com.au) January 2008.
- Available under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license.
- Please attribute the author if you use it. */
-(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._sincef)){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._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;i0);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])?''+''+d._translateDigits(c,c._periods[a])+' '+(b?b[a]:k[a])+' ':'')};return(c.options.layout?this._buildLayout(c,h,c.options.layout,c.options.compact,c.options.significant,j):((c.options.compact?''+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):''):''+n(Y)+n(O)+n(W)+n(D)+n(H)+n(M)+n(S))+' '+(c.options.description?''+c.options.description+' ':'')))},_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._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()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
index 1189e68..0000000
--- a/turniej/templates/404.html
+++ /dev/null
@@ -1,8 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-Nie znaleziono strony
-
-Nie ma tu żadnej strony. Przejdź do strony gÅównej .
-
-{% endblock %}
diff --git a/turniej/templates/500.html b/turniej/templates/500.html
deleted file mode 100644
index 5ce19fc..0000000
--- a/turniej/templates/500.html
+++ /dev/null
@@ -1,8 +0,0 @@
-{% extends "edition2/base.html" %}
-
-{% block "body" %}
-BÅÄ
d
-
-WystÄ
piÅ bÅÄ
d serwera. Przepraszamy!
-
-{% endblock %}
diff --git a/turniej/templates/base.html b/turniej/templates/base.html
deleted file mode 100644
index 132e4f3..0000000
--- a/turniej/templates/base.html
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
- Turniej ElektrybaÅtów{% block "extratitle" %}{% endblock %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% block "body" %}{% endblock %}
-
-
-
-
-{% load piwik_tags %}
-{% tracking_code %}
-
-
-
-
diff --git a/turniej/urls.py b/turniej/urls.py
deleted file mode 100644
index eafb8c9..0000000
--- a/turniej/urls.py
+++ /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
index f97d8fd..0000000
--- a/turniej/wsgi.py
+++ /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()