42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
from __future__ import unicode_literals
|
|
from django.utils import timezone
|
|
from django.db import models
|
|
|
|
MAX_EVENT_ID_LENGTH = 64
|
|
MAX_EVENT_TITLE_LENGTH = 256
|
|
MAX_EVENT_CATEGORY_LENGTH = 64
|
|
MAX_EVENT_LINK_LENGTH = 512
|
|
MAX_EVENT_PRESENTER_LENGTH = 256
|
|
MAX_EVENT_ORGNAME_LENGTH = 256
|
|
|
|
MAX_LOCATION_KEY_LENGTH = 128
|
|
MAX_LOCATION_NAME_LENGTH = 256
|
|
|
|
|
|
# Create your models here.
|
|
class Event(models.Model):
|
|
id = models.AutoField(primary_key=True)
|
|
title = models.CharField(blank=False, max_length=MAX_EVENT_TITLE_LENGTH)
|
|
category = models.CharField(blank=False, max_length=MAX_EVENT_CATEGORY_LENGTH)
|
|
link = models.CharField(blank=True, max_length=MAX_EVENT_LINK_LENGTH)
|
|
locations = models.ManyToManyField('Location', blank=False)
|
|
date = models.DateField(blank=False, default=timezone.now)
|
|
time = models.TimeField(blank=False, default=timezone.now)
|
|
presenter = models.CharField(blank=True, max_length=MAX_EVENT_PRESENTER_LENGTH)
|
|
orgname = models.CharField(blank=True, max_length=MAX_EVENT_ORGNAME_LENGTH)
|
|
|
|
def __str__(self):
|
|
return "Date: %s, Titel: %s" % (self.date.strftime("%Y.%m.%d"), self.title)
|
|
|
|
class Meta:
|
|
unique_together = ('date', 'time', 'title')
|
|
|
|
|
|
class Location(models.Model):
|
|
id = models.AutoField(primary_key=True)
|
|
key = models.CharField(blank=True, max_length=MAX_LOCATION_KEY_LENGTH)
|
|
name = models.CharField(blank=False, unique=True, max_length=MAX_LOCATION_NAME_LENGTH)
|
|
|
|
def __str__(self):
|
|
return str(self.name)
|