Rearrange source.
[turniej.git] / apps / poetry / models.py
diff --git a/apps/poetry/models.py b/apps/poetry/models.py
deleted file mode 100644 (file)
index 58b8caf..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-import os
-import subprocess
-from django.db import models
-from django.urls import reverse
-from django.conf import settings
-from poetry.utils import get_hash
-
-
-class Poet(models.Model):
-    name = models.CharField(max_length=50)
-    path = models.CharField(max_length=255)
-    slug = models.SlugField(max_length=50, unique=True, db_index=True)
-    author = models.CharField(max_length=128, blank=True)
-    url = models.CharField(max_length=255, blank=True)
-    description = models.TextField(blank=True)
-    first_line_title = models.BooleanField(default=False)
-    skip_first_lines = models.IntegerField(default=0)
-
-    def __str__(self):
-        return self.name
-
-    def get_absolute_url(self):
-        return reverse('poetry_poet', kwargs={'slug': self.slug})
-
-    def write(self):
-        curdir = os.getcwd()
-        os.chdir(os.path.dirname(self.path))
-        proc = subprocess.Popen(self.path,
-            stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-        os.chdir(curdir)
-        stdout, stderr = proc.communicate()
-        text = str(stdout, "utf-8", errors="ignore")[:1000]
-        slug = get_hash(text)
-        title = ''
-        if self.first_line_title:
-            title, text = text.split('\n', 1)
-        if self.skip_first_lines:
-            text = text.split('\n', self.skip_first_lines)[-1]
-        text = text.strip('\n')
-        poem = self.poem_set.create(
-            slug=slug,
-            text=text,
-            title=title
-            )
-        return poem
-
-    def make_for_contest(self):
-        assert not self.poem_set.filter(for_contest=True).exists()
-        for i in range(settings.POETRY_POEMS_FOR_CONTEST):
-            p = self.write()
-            p.for_contest = True
-            p.save()
-        return self.poem_set.filter(for_contest=True)
-
-    def contest_poems(self):
-        return self.poem_set.filter(in_contest=True)
-
-
-class Poem(models.Model):
-    slug = models.SlugField(max_length=50, db_index=True)
-    title = models.CharField(max_length=255, null=True, blank=True)
-    text = models.TextField()
-    poet = models.ForeignKey(Poet, on_delete=models.CASCADE)
-    created_at = models.DateTimeField(auto_now_add=True, editable=False, db_index=True)
-    seen_at = models.DateTimeField(auto_now_add=True, editable=False)
-    view_count = models.IntegerField(default=1)
-
-    for_contest = models.BooleanField(default=False)
-    in_contest = models.BooleanField(default=False)
-
-    def __str__(self):
-        oneliner = "%s, %s" % (self.poet.name, self.pretty_title())
-        oneliner += " [%s…]" % (" ".join(self.text.split()[:5]))
-        return oneliner
-
-    def get_absolute_url(self):
-        return reverse('poetry_poem', kwargs={'slug': self.slug})
-
-    def pretty_title(self):
-        return self.title or "***"
-
-    def visit(self):
-        self.view_count += 1
-        self.seen_at = datetime.now()
-        self.save()