dr.botzo/races/models.py

55 lines
1.4 KiB
Python

from django.db import models
from django.utils import timezone
class Race(models.Model):
"""Track a race."""
key = models.CharField(max_length=16, primary_key=True)
name = models.CharField(max_length=255)
description = models.TextField()
def __unicode__(self):
"""Text representation of a race."""
return u"{0:s} ({1:s})".format(self.name, self.key)
class Racer(models.Model):
"""Track a racer in a race."""
nick = models.CharField(max_length=64)
race = models.ForeignKey(Race)
joined = models.BooleanField(default=False)
started = models.BooleanField(default=False)
finished = models.BooleanField(default=False)
class Meta:
unique_together = ('nick', 'race')
def __unicode__(self):
"""Text representation of a race racer."""
return u"{0:s} in {1:s}".format(self.nick, self.race.name)
class RaceUpdate(models.Model):
"""Periodic updates for a racer."""
racer = models.ForeignKey(Racer)
update = models.TextField()
event_time = models.DateTimeField(default=timezone.now)
def __unicode__(self):
"""Text representation of a race update."""
local_time = timezone.localtime(self.event_time)
return u"{0:s} in {1:s} @ {2:s}".format(self.racer.nick, self.racer.race.name,
local_time.strftime('%Y-%m-%d %H:%M:%S %Z'))
# vi:tabstop=4:expandtab:autoindent