"""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)