|
|
@@ -1,16 +1,22 @@
|
|
|
from django.db import models
|
|
|
-
|
|
|
+from django.core.validators import validate_unicode_slug, MaxLengthValidator#, MaxValueValidator, URLValidator
|
|
|
# Create your models here.
|
|
|
|
|
|
-class Party(models.Model):
|
|
|
+class Event(models.Model):
|
|
|
+ slug = models.SlugField(
|
|
|
+ db_index=True,
|
|
|
+ unique=True,
|
|
|
+ validators=[validate_unicode_slug],
|
|
|
+ )
|
|
|
name = models.CharField(
|
|
|
max_length=50,
|
|
|
- #unique=True,
|
|
|
+ validators=[MaxLengthValidator(50)],
|
|
|
)
|
|
|
description = models.CharField(
|
|
|
null=True,
|
|
|
blank=True,
|
|
|
max_length=200,
|
|
|
+ validators=[MaxLengthValidator(200)],
|
|
|
)
|
|
|
location = models.ForeignKey(
|
|
|
'Location',
|
|
|
@@ -39,32 +45,42 @@ class Party(models.Model):
|
|
|
)
|
|
|
dresscode = models.CharField(
|
|
|
max_length=50,
|
|
|
+ validators=[MaxLengthValidator(50)],
|
|
|
)
|
|
|
- area = models.ForeignKey(
|
|
|
- 'Area',
|
|
|
- on_delete=models.CASCADE,
|
|
|
- )
|
|
|
+
|
|
|
+ #class Meta:
|
|
|
+ # ordering = ['doors_open']
|
|
|
+
|
|
|
+ def __str__(self):
|
|
|
+ return self.name
|
|
|
+
|
|
|
|
|
|
class Location(models.Model):
|
|
|
name = models.CharField(
|
|
|
max_length=50,
|
|
|
+ validators=[MaxLengthValidator(50)],
|
|
|
)
|
|
|
venue_type = models.CharField(
|
|
|
max_length=30,
|
|
|
+ validators=[MaxLengthValidator(30)],
|
|
|
)
|
|
|
street = models.CharField(
|
|
|
max_length=50,
|
|
|
+ validators=[MaxLengthValidator(50)],
|
|
|
)
|
|
|
housenumber = models.CharField(
|
|
|
max_length=10,
|
|
|
+ validators=[MaxLengthValidator(10)],
|
|
|
)
|
|
|
city = models.CharField(
|
|
|
max_length=30,
|
|
|
+ validators=[MaxLengthValidator(30)],
|
|
|
)
|
|
|
areacode = models.CharField(
|
|
|
null=True,
|
|
|
blank=True,
|
|
|
- max_length=10
|
|
|
+ max_length=10,
|
|
|
+ validators=[MaxLengthValidator(10)],
|
|
|
)
|
|
|
free_parking = models.PositiveSmallIntegerField(
|
|
|
default=False,
|
|
|
@@ -74,28 +90,33 @@ class Location(models.Model):
|
|
|
constraints = [
|
|
|
models.UniqueConstraint(fields=['street', 'housenumber'], name='unique location')
|
|
|
]
|
|
|
+ ordering = ['name']
|
|
|
|
|
|
-class Area(models.Model):
|
|
|
- name = models.CharField(
|
|
|
- max_length=50,
|
|
|
- default='Main',
|
|
|
+ def __str__(self):
|
|
|
+ return self.name
|
|
|
+
|
|
|
+
|
|
|
+class Activity(models.Model):
|
|
|
+ event = models.ForeignKey(
|
|
|
+ 'Event',
|
|
|
+ on_delete=models.CASCADE,
|
|
|
)
|
|
|
- activity = models.ForeignKey(
|
|
|
- 'Activity',
|
|
|
+ area = models.ForeignKey(
|
|
|
+ 'Area',
|
|
|
on_delete=models.CASCADE,
|
|
|
)
|
|
|
-
|
|
|
-class Activity(models.Model):
|
|
|
name = models.CharField(
|
|
|
null=True,
|
|
|
blank=True,
|
|
|
max_length=50,
|
|
|
default='Social',
|
|
|
+ validators=[MaxLengthValidator(50)],
|
|
|
)
|
|
|
description = models.CharField(
|
|
|
null=True,
|
|
|
blank=True,
|
|
|
max_length=200,
|
|
|
+ validators=[MaxLengthValidator(200)],
|
|
|
)
|
|
|
TYPE_CHOICES = [
|
|
|
('Dance party',
|
|
|
@@ -106,6 +127,7 @@ class Activity(models.Model):
|
|
|
),
|
|
|
('ws', 'Workshop'),
|
|
|
('sh', 'Show'),
|
|
|
+ ('cl', 'Class'),
|
|
|
('br', 'Break'),
|
|
|
('ot', 'Other'),
|
|
|
]
|
|
|
@@ -113,6 +135,7 @@ class Activity(models.Model):
|
|
|
max_length=2,
|
|
|
choices=TYPE_CHOICES,
|
|
|
default='sc',
|
|
|
+ validators=[MaxLengthValidator(2)],
|
|
|
)
|
|
|
start = models.DateTimeField()
|
|
|
end = models.DateTimeField()
|
|
|
@@ -120,4 +143,22 @@ class Activity(models.Model):
|
|
|
null=True,
|
|
|
blank=True,
|
|
|
max_length=50,
|
|
|
+ validators=[MaxLengthValidator(50)],
|
|
|
+ )
|
|
|
+
|
|
|
+ #class Meta:
|
|
|
+ # ordering = ['name']
|
|
|
+
|
|
|
+ def __str__(self):
|
|
|
+ return self.name
|
|
|
+
|
|
|
+
|
|
|
+class Area(models.Model):
|
|
|
+ name = models.CharField(
|
|
|
+ max_length=50,
|
|
|
+ default='Main',
|
|
|
+ validators=[MaxLengthValidator(50)],
|
|
|
)
|
|
|
+
|
|
|
+ def __str__(self):
|
|
|
+ return self.name
|