This repository has been archived on 2025-11-04. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
csmb-housewars/housewars/models.py
2022-05-21 15:47:24 -05:00

72 lines
2 KiB
Python

from django.db import models
from .managers import (EagleEntryManager, EntryManager, GreatGreyEntryManager,
HawkEntryManager, SnowyEntryManager)
class Activity(models.Model):
class Meta:
verbose_name_plural = "Activities"
TimeslotChoices = [
(30, '30'),
(60, '60')
]
name = models.CharField(max_length=100)
quota = models.IntegerField()
time = models.IntegerField(choices=TimeslotChoices)
def __str__(self):
return f"{self.name} ({self.time})"
class House(models.Model):
name = models.CharField(max_length=100)
points = models.IntegerField(default=0)
def __str__(self):
return f"{self.name}"
class UserEntry(models.Model):
class Meta:
verbose_name_plural = "User Entries"
objects = EntryManager()
hawk = HawkEntryManager()
great_grey = GreatGreyEntryManager()
snowy = SnowyEntryManager()
eagle = EagleEntryManager()
GradeChoices = (
(9, '9th/Freshman'),
(10, '10th/Sophomore'),
(11, '11th/Junior'),
(12, '12th/Senior'),
)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
email = models.EmailField(max_length=100)
grade = models.IntegerField(choices=GradeChoices)
house = models.ForeignKey(
House, on_delete=models.CASCADE)
activity1 = models.ForeignKey(
Activity, related_name='activity1', on_delete=models.CASCADE)
activity2 = models.ForeignKey(
Activity, related_name='activity2', on_delete=models.CASCADE, blank=True, null=True)
def __str__(self):
return f"{self.first_name} {self.last_name}"
class PointsEntry(models.Model):
class Meta:
verbose_name_plural = "Point Entries"
name = models.CharField(max_length=100)
activity = models.ForeignKey(Activity, on_delete=models.CASCADE)
house = models.ForeignKey(House, on_delete=models.CASCADE)
points = models.IntegerField(default=0)
comment = models.TextField(blank=False)