53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
from django.db import models
|
|
|
|
|
|
class City(models.Model):
|
|
name = models.CharField(max_length=255)
|
|
slug = models.CharField(max_length=255)
|
|
enabled = models.BooleanField()
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
class Association(models.Model):
|
|
STATES = (
|
|
('dronken', 'Dronken'),
|
|
('nuchter', 'Nuchter'),
|
|
('brak', 'Brak')
|
|
)
|
|
|
|
name = models.CharField(max_length=255)
|
|
short_name = models.CharField(max_length=255)
|
|
slug = models.CharField(max_length=255)
|
|
intern = models.CharField(max_length=255, blank=True, null=True)
|
|
state = models.CharField(max_length=255)
|
|
city = models.ForeignKey(to=City, on_delete=models.SET_NULL, blank=True, null=True)
|
|
has_intern = models.BooleanField()
|
|
enabled = models.BooleanField()
|
|
extra_states = models.ManyToManyField(to='ExtraState', blank=True, null=True)
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
def get_state_display(self):
|
|
|
|
if not self.has_intern:
|
|
return "Geen intern!"
|
|
|
|
values = dict(list(Association.STATES))
|
|
values.update(dict([(x.value, x.name) for x in self.extra_states.all()]))
|
|
|
|
try:
|
|
return values[self.state]
|
|
except KeyError:
|
|
return "Onbekend"
|
|
|
|
|
|
class ExtraState(models.Model):
|
|
name = models.CharField(max_length=255)
|
|
value = models.CharField(max_length=255)
|
|
|
|
def __str__(self):
|
|
return self.name
|