diff gpp/ygroup/models.py @ 323:0c18dfb1da1c

Fixing #149; adding the ygroup application: an archive of the old Yahoo Group messages.
author Brian Neal <bgneal@gmail.com>
date Sun, 20 Feb 2011 00:31:54 +0000
parents
children 368d731af479
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gpp/ygroup/models.py	Sun Feb 20 00:31:54 2011 +0000
@@ -0,0 +1,55 @@
+"""
+Models for the ygroup application, which is a read-only archive of messages
+from the old Yahoo Group.
+"""
+from django.db import models
+
+
+class Thread(models.Model):
+    title = models.CharField(max_length=255)
+    creation_date = models.DateTimeField()
+
+    # denormalized fields to reduce database hits
+    poster = models.CharField(max_length=128)
+    post_count = models.IntegerField(blank=True, default=0)
+    page = models.IntegerField(blank=True, default=1)
+
+    class Meta:
+        ordering = ('creation_date', )
+
+    def __unicode__(self):
+        return u'Thread %d, %s' % (self.pk, self.title)
+
+    @models.permalink
+    def get_absolute_url(self):
+        return ('ygroup-thread_view', [self.id])
+
+
+class Post(models.Model):
+    thread = models.ForeignKey(Thread, null=True, blank=True,
+            on_delete=models.SET_NULL, related_name='posts')
+    title = models.CharField(max_length=255)
+    creation_date = models.DateTimeField()
+    poster = models.CharField(max_length=128)
+    msg = models.TextField()
+
+    # precomputed URL to this post in the parent thread for efficiency
+    thread_url = models.URLField(verify_exists=False, blank=True)
+
+    class Meta:
+        ordering = ('creation_date', )
+        verbose_name = 'yahoo group post'
+        verbose_name_plural = 'yahoo group posts'
+
+    def __unicode__(self):
+        return u'Post %d, %s' % (self.pk, self.title)
+
+    @models.permalink
+    def get_absolute_url(self):
+        return ('ygroup-post_view', [], {'pk': self.id})
+
+    def search_title(self):
+        return self.title
+
+    def search_summary(self):
+        return self.msg