Updates to the main page
This commit is contained in:
@@ -3,14 +3,29 @@ from phonenumber_field.modelfields import PhoneNumberField
|
||||
import datetime
|
||||
from django.utils import timezone
|
||||
|
||||
class TimeInfoBase(models.Model):
|
||||
|
||||
created = models.DateTimeField(default=timezone.now)
|
||||
last_modified = models.DateTimeField(default=timezone.now)
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
if not kwargs.pop("skip_last_modified", False) and not hasattr(self, "skip_last_modified"):
|
||||
self.last_modified = timezone.now()
|
||||
if kwargs.get("update_fields") is not None:
|
||||
kwargs["update_fields"] = list({*kwargs["update_fields"], "last_modified"})
|
||||
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
# Create your models here.
|
||||
class UsefulLinks(models.Model):
|
||||
class UsefulLinks(TimeInfoBase):
|
||||
name = models.CharField(max_length=256)
|
||||
url = models.CharField(max_length=256)
|
||||
|
||||
|
||||
class Membership(models.Model):
|
||||
class Membership(TimeInfoBase):
|
||||
children = models.CharField(max_length=256, default="", blank=True, null=True)
|
||||
|
||||
def get_address_str(self):
|
||||
@@ -37,7 +52,7 @@ class Membership(models.Model):
|
||||
return self.get_address_str() + " | " + self.get_person_1()
|
||||
|
||||
|
||||
class AddressModel1(models.Model):
|
||||
class AddressModel1(TimeInfoBase):
|
||||
membership = models.OneToOneField(Membership, on_delete=models.CASCADE)
|
||||
address_1 = models.CharField(max_length=128)
|
||||
address_2 = models.CharField(max_length=128, blank=True)
|
||||
@@ -46,7 +61,7 @@ class AddressModel1(models.Model):
|
||||
zip_code = models.CharField(max_length=5)
|
||||
|
||||
|
||||
class CalendarEvent(models.Model):
|
||||
class CalendarEvent(TimeInfoBase):
|
||||
event_name = models.CharField(max_length=256)
|
||||
start_date = models.DateField(blank=True, null=True)
|
||||
end_date = models.DateField(blank=True, null=True)
|
||||
@@ -75,7 +90,7 @@ class CalendarEvent(models.Model):
|
||||
return not self.has_date()
|
||||
|
||||
|
||||
class CalendarEventAddressModel(models.Model):
|
||||
class CalendarEventAddressModel(TimeInfoBase):
|
||||
calendar_event = models.OneToOneField(CalendarEvent, on_delete=models.CASCADE)
|
||||
address_1 = models.CharField(max_length=128)
|
||||
address_2 = models.CharField(max_length=128, blank=True)
|
||||
@@ -89,7 +104,7 @@ class CalendarEventAddressModel(models.Model):
|
||||
)
|
||||
|
||||
|
||||
class MembershipPerson(models.Model):
|
||||
class MembershipPerson(TimeInfoBase):
|
||||
membership = models.ForeignKey(
|
||||
Membership, on_delete=models.CASCADE, blank=True, null=True
|
||||
)
|
||||
@@ -102,7 +117,7 @@ class MembershipPerson(models.Model):
|
||||
return self.email if self.email else "No email"
|
||||
|
||||
|
||||
class MembershipCommittee(models.Model):
|
||||
class MembershipCommittee(TimeInfoBase):
|
||||
membership = models.OneToOneField(Membership, on_delete=models.CASCADE)
|
||||
block_captain = models.BooleanField(default=False, blank=True, null=True)
|
||||
coordinator = models.BooleanField(default=False, blank=True, null=True)
|
||||
@@ -119,7 +134,7 @@ class MembershipCommittee(models.Model):
|
||||
no_preference = models.BooleanField(default=False, blank=True, null=True)
|
||||
|
||||
|
||||
class MembershipServices(models.Model):
|
||||
class MembershipServices(TimeInfoBase):
|
||||
membership = models.OneToOneField(Membership, on_delete=models.CASCADE)
|
||||
babysitting = models.BooleanField(default=False, blank=True, null=True)
|
||||
lawn_mowing = models.BooleanField(default=False, blank=True, null=True)
|
||||
@@ -131,7 +146,7 @@ class MembershipServices(models.Model):
|
||||
other_desc = models.CharField(default="", blank=True, null=True, max_length=256)
|
||||
|
||||
|
||||
class Payments(models.Model):
|
||||
class Payments(TimeInfoBase):
|
||||
date = models.DateField(default=timezone.now())
|
||||
status = models.CharField(default="Completed", max_length=256)
|
||||
email = models.EmailField(blank=True, null=True)
|
||||
@@ -140,26 +155,45 @@ class Payments(models.Model):
|
||||
)
|
||||
|
||||
|
||||
class SCHAOfficer(models.Model):
|
||||
class SCHAOfficer(TimeInfoBase):
|
||||
name = models.CharField(max_length=255)
|
||||
position = models.CharField(max_length=255)
|
||||
email = models.EmailField(max_length=255)
|
||||
|
||||
# class CommunitySchools(models.Model):
|
||||
# name = models.CharField(max_length=255)
|
||||
# name_school_url = models.URLField(max_length=256)
|
||||
# rating_url = models.URLField(max_length=256)
|
||||
# rating = models.DecimalField(max_digits=5, decimal_places=2)
|
||||
# distance = models.DecimalField(max_digits=3, decimal_places=1)
|
||||
# principal = models.CharField(max_length=255)
|
||||
# grades = models.CharField(max_length=255)
|
||||
### NOT USED YET ###
|
||||
|
||||
# class CommunityShoppingAndDining(models.Model):
|
||||
# name = models.CharField(max_length=255)
|
||||
# distance = models.DecimalField(max_digits=3, decimal_places=1)
|
||||
# description = models.CharField(max_length=1024)
|
||||
class CommunitySchools(TimeInfoBase):
|
||||
name = models.CharField(max_length=255)
|
||||
name_school_url = models.URLField(max_length=256)
|
||||
rating_url = models.URLField(max_length=256)
|
||||
rating = models.DecimalField(max_digits=5, decimal_places=2)
|
||||
distance = models.DecimalField(max_digits=3, decimal_places=1)
|
||||
principal = models.CharField(max_length=255)
|
||||
grades = models.CharField(max_length=255)
|
||||
|
||||
# class CommunityParks(models.Model):
|
||||
# name = models.CharField(max_length=255)
|
||||
# distance = models.DecimalField(max_digits=3, decimal_places=1)
|
||||
# description = models.CharField(max_length=1024)
|
||||
class CommunityShoppingAndDining(TimeInfoBase):
|
||||
name = models.CharField(max_length=255)
|
||||
distance = models.DecimalField(max_digits=3, decimal_places=1)
|
||||
description = models.CharField(max_length=1024)
|
||||
|
||||
class CommunityParks(TimeInfoBase):
|
||||
name = models.CharField(max_length=255)
|
||||
distance = models.DecimalField(max_digits=3, decimal_places=1)
|
||||
description = models.CharField(max_length=1024)
|
||||
|
||||
|
||||
|
||||
class CommunityPost(TimeInfoBase):
|
||||
title = models.CharField(max_length=255)
|
||||
category = models.CharField(max_length=255)
|
||||
content = models.CharField(max_length=1024*8)
|
||||
likes = models.IntegerField(default=0)
|
||||
|
||||
class CommunityPostReports(TimeInfoBase):
|
||||
post = models.ForeignKey(CommunityPost, on_delete=models.CASCADE)
|
||||
# user = something
|
||||
|
||||
class CommunityComment(TimeInfoBase):
|
||||
post = models.ForeignKey(CommunityPost, on_delete=models.CASCADE)
|
||||
content = models.CharField(max_length=1024*8)
|
||||
likes = models.IntegerField(default=0)
|
||||
Reference in New Issue
Block a user