duck-booking-tool/booking/models.py

62 lines
1.9 KiB
Python
Raw Normal View History

2014-12-22 13:22:38 +00:00
from django.db import models
2014-12-22 13:24:10 +00:00
from django.contrib.auth.models import User
2014-12-22 13:25:55 +00:00
from django.utils import timezone
2014-12-22 13:22:38 +00:00
class Species(models.Model):
"""Model to hold the Ducks species"""
name = models.CharField(max_length = 40, unique = True)
def __str__(self):
return self.name
2014-12-22 13:52:17 +00:00
class Location(models.Model):
"""Model to hold the possible locations of the Ducks"""
name = models.CharField(max_length = 50)
def __str__(self):
return self.name
2014-12-22 13:24:10 +00:00
class Competence(models.Model):
"""Model to hold Duck competences"""
name = models.CharField(max_length = 255, unique = True)
added_at = models.DateTimeField(default = timezone.now)
added_by = models.ForeignKey(User)
def __str__(self):
return self.name
2014-12-22 13:25:55 +00:00
class Duck(models.Model):
"""Model to hold Duck data"""
name = models.CharField(max_length = 80, null = True, blank = True)
color = models.CharField(max_length = 6)
species = models.ForeignKey(Species)
location = models.ForeignKey(Location)
2014-12-22 13:28:03 +00:00
comps = models.ManyToManyField(Competence, through = 'DuckCompetence')
2014-12-22 13:25:55 +00:00
donated_by = models.ForeignKey(User)
donated_at = models.DateTimeField(default = timezone.now)
adopted_by = models.ForeignKey(User, related_name = 'adopted_ducks', null = True)
adopted_at = models.DateTimeField(null = True)
on_holiday_since = models.DateTimeField(null = True)
on_holiday_until = models.DateTimeField(null = True)
def __str__(self):
if self.name == None or self.name == '':
return 'Unnamed :('
return self.name
2014-12-22 13:28:03 +00:00
class DuckCompetence(models.Model):
"""Duck competence governor table"""
duck = models.ForeignKey(Duck)
comp = models.ForeignKey(Competence)
up_minutes = models.IntegerField(default = 0)
down_minutes = models.IntegerField(default = 0)
class Meta:
unique_together = ('duck', 'comp')