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)
 
     def __unicode__(self):
         oneliner = u"%s, %s" % (self.poet.name, self.pretty_title())
-        if not self.title:
-            oneliner += u" [%s…]" % self.text[:20]
+        oneliner += u" [%s…]" % (u" ".join(self.text.split()[:5]))
         return oneliner
 
     def get_absolute_url(self):
 
--- /dev/null
+{% extends "base.html" %}
+{% load url from future %}
+
+{% block "body" %}
+
+<h1>
+<a href='/'><img src="{{ STATIC_URL }}img/turniej-maly.png" style='float:left; margin-right: 10px; margin-top: -13px' /></a>
+Turniej Elektrybałtów: utwory wybrane do konkursu</h1>
+
+<div class="social">
+<span style="position:relative; top: -5px;" >
+    <div class="fb-like" data-href="http://turniej.wolnelektury.pl" data-send="false" data-layout="button_count" data-width="150" data-show-faces="false"></div>
+</span>
+<g:plusone annotation="bubble" href="http://turniej.wolnelektury.pl"></g:plusone>
+<script>
+  new nk_fajne({
+    url: "http://turniej.wolnelektury.pl",
+    type: 4,
+    color: 0,
+    title: "Turniej Elektrybałtów",
+    image: "http://turniej.wolnelektury.pl/turniej.png",
+    description: "Turniej Elektrybałtów - otwarty konkurs na najlepszego automatycznego poetę."
+  });
+</script>
+</div>
+
+<div style='clear: both'></div>
+
+{% for poet in poets %}
+    <h2><a href="{{ poet.get_absolute_url }}">{{ poet }}</a></h2>
+    <ul class='plain'>
+    {% for poem in poet.contest_poems %}
+        <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
+    {% endfor %}
+    </ul>
+{% endfor %}
+</ul>
+
+{% endblock %}
 
 
 <a class='tworz' href="{% url 'poetry_new' %}">Twórz-że się!</a>
 
+<h2><a href="{% url 'poetry_contest' %}">Utwory do konkursu zostały wybrane!</a></h2>
+
+<p>Spośród wygenerowanych przz nas propozycji autorzy programów wybrali po trzy utwory.</p>
+<p><a href="{% url 'poetry_contest' %}">Zobacz wiersze startujące w konkursie!</a></p>
+</p>
+
+
+
+
 <h2>Ostatnio opublikowane utwory:</h2>
 <ul class='plain'>
 {% for poem in last %}
 
 <!doctype html>
 <html>
 <head>
-    <title>Turniej Elektrybałtów: {{ poem.poet.name }}, {% if poem.title %}{{ poem.title }}{% else %}***{% endif %}</title>
+    <title>Turniej Elektrybałtów: {{ poem }}</title>
     <meta charset="utf-8" />
 
     <link rel="shortcut icon" href="{{ STATIC_URL }}img/favicon.ico" />
 
 
 <p><a href="{% url 'poetry_main' %}">Zobacz wszystkich autorów.</a></p>
 
+<div class="poet-description">
+
 <p>Autor programu: <strong>{{ poet.author }}</strong></p>
 
-<p>{{ poet.description }}</p>
+{{ poet.description|linebreaks }}
 
 <p>Kod źródłowy: <a href="{{ poet.url }}">{{ poet.url }}</a></p>
 
 <a class="tworz" href="{% url 'poetry_new' poet.slug %}">Twórz-że!</a>
 
-<p>Ostatnio opublikowane utwory:</p>
+</div>
+
+<h2>Utwory w konkursie (<a href="{% url 'poetry_contest' %}">zobacz wszystkie</a>)</h2>
+<ul class='plain'>
+{% for poem in in_contest %}
+    <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
+{% endfor %}
+</ul>
+
+<h2>Ostatnio opublikowane utwory:</h2>
 <ul class='plain'>
 {% for poem in last %}
     <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
 
 
     url(r"^$", "main", name="poetry_main"),
     url(r"^nowy/$", 'new', name="poetry_new"),
+    url(r"^konkurs/$", 'contest', name="poetry_contest"),
     url(r"^(?P<slug>[a-zA-Z0-9-]+)/$", "poet", name="poetry_poet"),
     url(r"^(?P<slug>[a-zA-Z0-9-]+)/nowy/$", 'new', name="poetry_new"),
 
 
 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())
 
 
     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())
+
 
     margin: 30px 13px;
     vertical-align: middle;
 }
+#footer a:hover {
+    border: none;
+}
 
 
 blockquote {
 .poet-list li:before {
   content: "» ";
 }
+
+.poet-description {
+    max-width: 60em;
+}
+
 
 <h2>Ostatnie wiersze:</h2>
 <ul class="last">
 {% for poem in last %}
-    <li><a href="{{ poem.get_absolute_url }}">{{ poem }}</a></li>
+    <li><a href="{{ poem.get_absolute_url }}">{{ poem.poet.name}}, {{ poem.pretty_title }}</a><br/>{{ poem.text|truncatewords:5 }}</li>
 {% endfor %}    
 </ul>
 
 </div>
 
 
+<div class="uwaga">
+<p>Konkurs został rozstrzygnięty! Zakończenie odbyło się podczas <a href='http://domenapubliczna.org'>Dnia Domeny Publicznej 2012</a>.</p>
+
+<p>Zwycięzcą został <a href='/poezja/centonista/'><strong>Centonista</strong></a>. Gratulujemy!</p>
+
+<p>Dodatkowo, <a href='/poezja/ala/'>Ała!</a> otrzymał wyróżnienie.</p>
+</div>
+
 <p>Znacie <a href="http://www.wolnelektury.pl/lesmianator/">Leśmianatora</a>?
 To niewielki skrypt miksujący na życzenie wiersze z
 <a href="http://www.wolnelektury.pl">Wolnych Lektur</a>.
 <a href="https://github.com/turniej">jest dostępny</a> na wolnej licencji
 – nic więc nie stoi na przeszkodzie, by rozwijać je dalej.</p>
 
+<p>Spośród wygenerowanych przz nas propozycji autorzy programów wybrali po trzy utwory.
+<a href="{% url 'poetry_contest' %}">Zobacz wiersze, które wystartowały w konkursie.</a></p>
+
 <p>Do zabawy zapraszamy wszystkich – i tych, którzy świetnie programują, i tych, którzy
 programować dopiero się uczą. Tych, którzy nie rozstają się z tomikiem
 wierszy, i tych, którzy na ten widok dostają gęsiej skórki. Chcemy wybrać