63 lines
1.5 KiB
Python
63 lines
1.5 KiB
Python
"""Signup and Event models."""
|
|
from django.db import models
|
|
from django.utils import timezone
|
|
from webapp.models import Tag, BaseFeed
|
|
from webapp.utils import month_from_now
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from auditlog.registry import auditlog
|
|
from phonenumber_field.modelfields import PhoneNumberField
|
|
from django.contrib.postgres.fields import JSONField
|
|
|
|
import logging
|
|
|
|
|
|
VERBOSE_NAME = _('Webapp')
|
|
|
|
|
|
class Event(BaseFeed):
|
|
"""Model for event."""
|
|
|
|
start_time = models.DateTimeField(default=timezone.now)
|
|
end_time = models.DateTimeField(default=timezone.now)
|
|
registration = models.ForeignKey(
|
|
'Registration', on_delete=models.CASCADE, null=True)
|
|
|
|
def __str__(self):
|
|
return _('Event: {}').format(self.title)
|
|
|
|
class Meta:
|
|
verbose_name = _('Event')
|
|
verbose_name_plural = _('Events')
|
|
|
|
|
|
class Registration(models.Model):
|
|
"""Model for event registration."""
|
|
|
|
name = models.CharField(max_length=255)
|
|
email = models.EmailField()
|
|
options = JSONField()
|
|
|
|
def __str__(self):
|
|
return _('Registration: {}').format(self.name)
|
|
|
|
class Meta:
|
|
verbose_name = _('Registration')
|
|
verbose_name_plural = _('Registrations')
|
|
|
|
|
|
class Signup(models.Model):
|
|
start = models.DateTimeField()
|
|
end = models.DateTimeField()
|
|
|
|
|
|
class Question(models.Model):
|
|
pass
|
|
|
|
|
|
class Answer(models.Model):
|
|
signup = models.ForeignKey(Signup, on_delete=models.CASCADE)
|
|
question = models.ForeignKey(Question, on_delete=models.PROTECT)
|
|
|
|
|
|
auditlog.register(Event)
|
|
auditlog.register(Signup) |