annotate banners/models.py @ 645:99f7917702ca

Fix 081a88b3bfc8, javascript resize of forum images. Commit 081a88b3bfc8 broke those pages that loaded forums.js but did not load the imagesLoaded jQuery extension. Now we have arranged it so that only the forums topic view loads imagesLoaded and put the resizing javascript inline.
author Brian Neal <bgneal@gmail.com>
date Mon, 11 Mar 2013 15:30:25 -0500
parents ee87ea74d46b
children
rev   line source
bgneal@558 1 """
bgneal@558 2 Models for the banners application.
bgneal@558 3
bgneal@558 4 """
bgneal@558 5 import datetime
bgneal@558 6
bgneal@558 7 from django.db import models
bgneal@558 8
bgneal@558 9
bgneal@558 10 class Campaign(models.Model):
bgneal@558 11 """
bgneal@558 12 A model to represent an ad or banner campaign.
bgneal@558 13
bgneal@558 14 """
bgneal@558 15 name = models.CharField(max_length=128)
bgneal@558 16 slug = models.SlugField()
bgneal@558 17 creation_date = models.DateTimeField(blank=True)
bgneal@558 18
bgneal@558 19 def __unicode__(self):
bgneal@558 20 return self.name
bgneal@558 21
bgneal@558 22 class Meta:
bgneal@558 23 ordering = ['name']
bgneal@558 24
bgneal@558 25 def save(self, *args, **kwargs):
bgneal@558 26 if not self.pk and not self.creation_date:
bgneal@558 27 self.creation_date = datetime.datetime.now()
bgneal@558 28
bgneal@558 29 super(Campaign, self).save(*args, **kwargs)
bgneal@558 30
bgneal@558 31
bgneal@558 32 def banner_upload_to(instance, filename):
bgneal@558 33 """
bgneal@558 34 An "upload_to" function for the Banner model.
bgneal@558 35
bgneal@558 36 """
bgneal@558 37 return "banners/%s/%s" % (instance.campaign.slug, filename)
bgneal@558 38
bgneal@558 39
bgneal@558 40 class Banner(models.Model):
bgneal@558 41 """
bgneal@558 42 A model to represent a banner.
bgneal@558 43
bgneal@558 44 """
bgneal@558 45 campaign = models.ForeignKey(Campaign)
bgneal@558 46 image = models.ImageField(upload_to=banner_upload_to)
bgneal@558 47 description = models.CharField(max_length=128)
bgneal@558 48 creation_date = models.DateTimeField(blank=True)
bgneal@558 49
bgneal@558 50 def __unicode__(self):
bgneal@558 51 return self.description
bgneal@558 52
bgneal@558 53 class Meta:
bgneal@558 54 ordering = ['-creation_date']
bgneal@558 55
bgneal@558 56 def save(self, *args, **kwargs):
bgneal@558 57 if not self.pk and not self.creation_date:
bgneal@558 58 self.creation_date = datetime.datetime.now()
bgneal@558 59
bgneal@558 60 super(Banner, self).save(*args, **kwargs)