X-Git-Url: https://git.mdrn.pl/turniej.git/blobdiff_plain/c9d036f4b17b01b352e3a1d20b31fac6fff9b26b..db566020a374d0e81e8274ab0e5ba8061f8903ad:/apps/poetry/models.py diff --git a/apps/poetry/models.py b/apps/poetry/models.py index 244538a..63bf8f2 100644 --- a/apps/poetry/models.py +++ b/apps/poetry/models.py @@ -3,6 +3,7 @@ import os import subprocess from django.db import models from django.core.urlresolvers import reverse +from django.conf import settings from poetry.utils import get_hash @@ -29,7 +30,7 @@ class Poet(models.Model): stdout=subprocess.PIPE, stderr=subprocess.PIPE) os.chdir(curdir) stdout, stderr = proc.communicate() - text = stdout.decode("utf-8")[:1000] + text = unicode(stdout, "utf-8", errors="ignore")[:1000] slug = get_hash(text) title = '' if self.first_line_title: @@ -44,6 +45,17 @@ class Poet(models.Model): ) 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) @@ -59,8 +71,7 @@ class Poem(models.Model): 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):