it/itf/emailer/models.py

84 lines
2.4 KiB
Python
Raw Normal View History

2011-12-01 21:12:20 +00:00
from django.db import models
from app.models import ItfModel
class EmailerIssue(ItfModel):
title = models.CharField(max_length=512)
date = models.DateField()
issue_no = models.IntegerField()
published = models.BooleanField(default=False)
def __unicode__(self):
return self.title
class Meta:
ordering = ['-issue_no']
2011-12-06 12:45:46 +00:00
def info_dict(self):
return {
'issue': self,
'weblinks': Weblink.objects.filter(issue=self),
'articles': EmailerArticle.objects.filter(issue=self),
'bbitems': BulletinBoardItem.objects.filter(issue=self)
}
def list_dict(self):
return {
'id': self.id,
'title': self.title
}
2011-12-27 09:18:37 +00:00
def main_image(self):
for article in self.emailerarticle_set.all():
if article.main_image:
return article.main_image
return None
2011-12-01 21:12:20 +00:00
2012-01-13 09:19:19 +00:00
@classmethod
def get_qset(kls):
return kls.objects.filter(published=True)
2011-12-01 21:12:20 +00:00
class EmailerArticle(models.Model):
issue = models.ForeignKey(EmailerIssue)
title = models.CharField(max_length=512)
subtitle = models.TextField(blank=True)
author = models.CharField(max_length=512, blank=True)
author_bio = models.TextField(blank=True)
main_image = models.ImageField(upload_to='upload/images/emailer/', blank=True)
text = models.TextField()
position = models.IntegerField(null=True)
def __unicode__(self):
return self.title
2011-12-27 09:18:37 +00:00
def get_images(self):
return self.articleimage_set.all()
2011-12-01 21:12:20 +00:00
class ArticleImage(models.Model):
image = models.ImageField(upload_to='upload/images/emailer/')
caption = models.CharField(max_length=512, blank=True)
article = models.ForeignKey(EmailerArticle)
2011-12-05 13:34:24 +00:00
short_name = models.CharField(max_length=64, blank=True, help_text='Short name to insert images into article')
2011-12-01 21:12:20 +00:00
def __unicode__(self):
return self.caption
class Weblink(models.Model):
url = models.URLField()
2011-12-05 13:34:24 +00:00
title = models.CharField(max_length=512)
2011-12-01 21:12:20 +00:00
text = models.TextField(blank=True)
issue = models.ForeignKey(EmailerIssue)
def __unicode__(self):
return self.url
class BulletinBoardItem(models.Model):
issue = models.ForeignKey(EmailerIssue)
title = models.CharField(max_length=512)
text = models.TextField()
position = models.IntegerField(default=1)
def __unicode__(self):
return self.title