Mercurial > public > sg101
annotate gpp/banners/models.py @ 558:9a68fd3bd8a5
Creating a simple banner / ad campaign application, initially as a RFB / SG101
tie-in.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Thu, 02 Feb 2012 18:56:48 -0600 |
parents | |
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) |