You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.2 KiB

from django.db import models
from django.conf import settings
from divebases.models import DiveBase
User = settings.AUTH_USER_MODEL
class Event(models.Model):
title = models.CharField(max_length=255)
start_datetime = models.DateTimeField()
location = models.CharField(max_length=255, blank=True)
google_maps_link = models.URLField(blank=True)
description = models.TextField(blank=True)
payment_details = models.TextField(blank=True)
dive_base = models.ForeignKey(DiveBase, on_delete=models.CASCADE, related_name='events')
created_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='created_events')
is_deleted = models.BooleanField(default=False)
def __str__(self):
return self.title
class EventApplication(models.Model):
event = models.ForeignKey(Event, on_delete=models.CASCADE, related_name='applications')
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='event_applications')
paid = models.BooleanField(default=False)
class Meta:
unique_together = ('event', 'user') # prevent duplicate applications
def __str__(self):
return f"{self.user} applied for {self.event}"