X-Git-Url: https://git.mdrn.pl/turniej.git/blobdiff_plain/acea41cd89c5d8d9700e0afd7af59d4a5a8b4d2c..479cb324a4cbc258f3f6de8de1025e7dccb1da2d:/apps/poetry/models.py diff --git a/apps/poetry/models.py b/apps/poetry/models.py index b0d15b1..58b8caf 100644 --- a/apps/poetry/models.py +++ b/apps/poetry/models.py @@ -1,8 +1,7 @@ -# -*- coding: utf-8 -*- import os import subprocess from django.db import models -from django.core.urlresolvers import reverse +from django.urls import reverse from django.conf import settings from poetry.utils import get_hash @@ -17,7 +16,7 @@ class Poet(models.Model): first_line_title = models.BooleanField(default=False) skip_first_lines = models.IntegerField(default=0) - def __unicode__(self): + def __str__(self): return self.name def get_absolute_url(self): @@ -30,7 +29,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 = str(stdout, "utf-8", errors="ignore")[:1000] slug = get_hash(text) title = '' if self.first_line_title: @@ -53,12 +52,15 @@ class Poet(models.Model): 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) + 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) @@ -66,10 +68,9 @@ class Poem(models.Model): for_contest = models.BooleanField(default=False) in_contest = models.BooleanField(default=False) - def __unicode__(self): - oneliner = u"%s, %s" % (self.poet.name, self.pretty_title()) - if not self.title: - oneliner += u" [%s…]" % self.text[:20] + 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):