annotate gpp/ygroup/models.py @ 334:6805d15cda13

Adding a script I had to write on the fly to filter out posts from the posts csv file that had no parent topics. MyISAM let me get away with that, but InnoDB won't.
author Brian Neal <bgneal@gmail.com>
date Sat, 26 Feb 2011 01:28:22 +0000
parents 0c18dfb1da1c
children 368d731af479
rev   line source
bgneal@323 1 """
bgneal@323 2 Models for the ygroup application, which is a read-only archive of messages
bgneal@323 3 from the old Yahoo Group.
bgneal@323 4 """
bgneal@323 5 from django.db import models
bgneal@323 6
bgneal@323 7
bgneal@323 8 class Thread(models.Model):
bgneal@323 9 title = models.CharField(max_length=255)
bgneal@323 10 creation_date = models.DateTimeField()
bgneal@323 11
bgneal@323 12 # denormalized fields to reduce database hits
bgneal@323 13 poster = models.CharField(max_length=128)
bgneal@323 14 post_count = models.IntegerField(blank=True, default=0)
bgneal@323 15 page = models.IntegerField(blank=True, default=1)
bgneal@323 16
bgneal@323 17 class Meta:
bgneal@323 18 ordering = ('creation_date', )
bgneal@323 19
bgneal@323 20 def __unicode__(self):
bgneal@323 21 return u'Thread %d, %s' % (self.pk, self.title)
bgneal@323 22
bgneal@323 23 @models.permalink
bgneal@323 24 def get_absolute_url(self):
bgneal@323 25 return ('ygroup-thread_view', [self.id])
bgneal@323 26
bgneal@323 27
bgneal@323 28 class Post(models.Model):
bgneal@323 29 thread = models.ForeignKey(Thread, null=True, blank=True,
bgneal@323 30 on_delete=models.SET_NULL, related_name='posts')
bgneal@323 31 title = models.CharField(max_length=255)
bgneal@323 32 creation_date = models.DateTimeField()
bgneal@323 33 poster = models.CharField(max_length=128)
bgneal@323 34 msg = models.TextField()
bgneal@323 35
bgneal@323 36 # precomputed URL to this post in the parent thread for efficiency
bgneal@323 37 thread_url = models.URLField(verify_exists=False, blank=True)
bgneal@323 38
bgneal@323 39 class Meta:
bgneal@323 40 ordering = ('creation_date', )
bgneal@323 41 verbose_name = 'yahoo group post'
bgneal@323 42 verbose_name_plural = 'yahoo group posts'
bgneal@323 43
bgneal@323 44 def __unicode__(self):
bgneal@323 45 return u'Post %d, %s' % (self.pk, self.title)
bgneal@323 46
bgneal@323 47 @models.permalink
bgneal@323 48 def get_absolute_url(self):
bgneal@323 49 return ('ygroup-post_view', [], {'pk': self.id})
bgneal@323 50
bgneal@323 51 def search_title(self):
bgneal@323 52 return self.title
bgneal@323 53
bgneal@323 54 def search_summary(self):
bgneal@323 55 return self.msg