1 from django.db import models
2 from django.contrib.auth.models import User
5 class Feed(models.Model):
6 url = models.URLField()
7 title = models.CharField(max_length=255)
8 link = models.URLField(blank=True, null=True)
9 updated = models.DateTimeField()
10 etag = models.CharField(max_length=255, blank=True, null=True)
11 modified = models.DateTimeField(blank=True, null=True)
12 alive = models.BooleanField(default=True)
14 def __unicode__(self):
15 return u'%s <%s>' % (self.title, self.url)
18 class Entry(models.Model):
19 feed = models.ForeignKey(Feed, related_name='entries')
20 uri = models.CharField(max_length=255)
21 title = models.CharField(max_length=255)
22 link = models.URLField(blank=True, null=True)
23 published = models.DateTimeField()
24 updated = models.DateTimeField()
25 summary = models.TextField(blank=True, null=True)
26 content = models.TextField(blank=True, null=True)
29 verbose_name_plural = 'entries'
30 ordering = ['-published']
32 def __unicode__(self):
33 return u'%s <%s>' % (self.title, self.feed)
36 class Subscription(models.Model):
37 user = models.ForeignKey(User, related_name='reader_subscriptions')
38 feed = models.ForeignKey(Feed, related_name='subscriptions')
39 custom_title = models.CharField(max_length=255, blank=True, null=True)
43 return self.custom_title if self.custom_title else self.feed.title
45 def __unicode__(self):
46 return u'%s <%s>' % (self.user, self.feed)
49 class UserEntry(models.Model):
50 user = models.ForeignKey(User, related_name='reader_userentries')
51 entry = models.ForeignKey(Entry, related_name='userentries')
52 read = models.BooleanField(default=False)
55 verbose_name = 'user entry relationship'
56 verbose_name_plural = 'user entry relationships'
58 def __unicode__(self):
59 return u'%s <%s>' % (self.user, self.entry)