Mercurial > public > madeira
view gigs/models.py @ 157:25a9d67f4d1c
Fix floating images stomping on next story or footer.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Mon, 29 Dec 2014 18:17:32 -0600 |
parents | 447d75d1e21d |
children |
line wrap: on
line source
""" Models for the gigs application. """ from django.db import models from localflavor.us.models import USStateField from localflavor.us.models import PhoneNumberField from photologue.models import Photo class Country(models.Model): name = models.CharField(max_length=64) class Meta: ordering = ['name'] verbose_name_plural = 'Countries' def __unicode__(self): return self.name class State(models.Model): name = models.CharField(max_length=16) abbrev = USStateField() class Meta: ordering = ['name'] def __unicode__(self): return self.name class City(models.Model): name = models.CharField(max_length=50) state = models.ForeignKey(State, null=True, blank=True) country = models.ForeignKey(Country, null=True, blank=True) class Meta: verbose_name_plural = 'Cities' ordering = ['name'] def __unicode__(self): if self.state: return u'%s, %s' % (self.name, self.state.abbrev) return self.name class Venue(models.Model): name = models.CharField(max_length=50) url = models.URLField(blank=True) address = models.CharField(max_length=255, blank=True) phone = PhoneNumberField(help_text="Format: XXX-XXX-XXXX", blank=True) city = models.ForeignKey(City) class Meta: ordering = ['name'] def __unicode__(self): return self.name class Band(models.Model): name = models.CharField(max_length=64) url = models.URLField(blank=True) class Meta: ordering = ['name'] def __unicode__(self): return self.name class Gig(models.Model): title = models.CharField(max_length=50, blank=True, help_text="Optional; e.g. Some Festival") url = models.URLField(blank=True, help_text="Optional; e.g. Some Festival's Website") date = models.DateField(db_index=True) time = models.TimeField(null=True, blank=True) venue = models.ForeignKey(Venue, null=True, blank=True) notes = models.TextField(blank=True) bands = models.ManyToManyField(Band, blank=True) flyer = models.ForeignKey(Photo, null=True, blank=True, related_name='gig_flyers') def __unicode__(self): if self.title: return u'%s %s %s' % (self.date.strftime('%m/%d/%Y'), self.title, self.venue.name) elif self.venue: return u'%s %s' % (self.date.strftime('%m/%d/%Y'), self.venue.name) else: return self.date.strftime('%m/%d/%Y') class Meta: ordering = ['-date', 'time']