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.
81 lines
4.2 KiB
81 lines
4.2 KiB
from datetime import date |
|
from django.db import models |
|
from django.contrib.auth.models import User |
|
from django.utils.timezone import now |
|
|
|
from . import old_models |
|
|
|
class Member(models.Model): |
|
user = models.OneToOneField(User, blank=True, null=True, on_delete=models.SET_NULL) |
|
photo_large = models.CharField(max_length=64, blank=True, null=True) |
|
photo_medium = models.CharField(max_length=64, blank=True, null=True) |
|
photo_small = models.CharField(max_length=64, blank=True, null=True) |
|
|
|
set_details = models.BooleanField(default=False) |
|
first_name = models.CharField(max_length=32) |
|
last_name = models.CharField(max_length=32) |
|
preferred_name = models.CharField(max_length=32) |
|
phone = models.CharField(max_length=32, null=True) |
|
emergency_contact_name = models.CharField(max_length=64, blank=True) |
|
emergency_contact_phone = models.CharField(max_length=32, blank=True) |
|
birthdate = models.DateField(blank=True, null=True) |
|
is_minor = models.BooleanField(default=False) |
|
guardian_name = models.CharField(max_length=32, blank=True, null=True) |
|
street_address = models.CharField(max_length=32, null=True) |
|
city = models.CharField(default='Calgary, AB', max_length=32) |
|
postal_code = models.CharField(max_length=16, null=True) |
|
|
|
is_director = models.BooleanField(default=False) |
|
is_instructor = models.BooleanField(default=False) |
|
status = models.CharField(max_length=32, blank=True, null=True) |
|
expire_date = models.DateField(default=date.today, null=True) |
|
current_start_date = models.DateField(default=date.today, null=True) |
|
application_date = models.DateField(default=date.today, null=True) |
|
vetted_date = models.DateField(blank=True, null=True) |
|
monthly_fees = models.IntegerField(default=55, blank=True, null=True) |
|
|
|
class Transaction(models.Model): |
|
user = models.ForeignKey(User, related_name='transactions', blank=True, null=True, on_delete=models.SET_NULL) |
|
recorder = models.ForeignKey(User, related_name='+', blank=True, null=True, on_delete=models.SET_NULL) |
|
|
|
member_id = models.IntegerField(blank=True, null=True) |
|
date = models.DateField(default=date.today) |
|
amount = models.DecimalField(max_digits=7, decimal_places=2) |
|
reference_number = models.CharField(max_length=32, blank=True, null=True) |
|
memo = models.TextField(blank=True, null=True) |
|
number_of_membership_months = models.TextField(blank=True, null=True) |
|
payment_method = models.TextField(blank=True, null=True) |
|
category = models.TextField(blank=True, null=True) |
|
account_type = models.TextField(blank=True, null=True) |
|
info_source = models.TextField(blank=True, null=True) |
|
|
|
class Card(models.Model): |
|
user = models.ForeignKey(User, related_name='cards', blank=True, null=True, on_delete=models.SET_NULL) |
|
|
|
member_id = models.IntegerField(blank=True, null=True) |
|
card_number = models.CharField(max_length=16, blank=True, null=True) |
|
notes = models.TextField(blank=True, null=True) |
|
last_seen_at = models.DateField(default=date.today, blank=True, null=True) |
|
active_status = models.CharField(max_length=32, blank=True, null=True) |
|
|
|
class Course(models.Model): |
|
name = models.TextField(blank=True, null=True) |
|
description = models.TextField(blank=True, null=True) |
|
is_old = models.BooleanField(default=False) |
|
|
|
class Session(models.Model): |
|
instructor = models.ForeignKey(User, related_name='teaching', blank=True, null=True, on_delete=models.SET_NULL) |
|
course = models.ForeignKey(Course, related_name='sessions', blank=True, null=True, on_delete=models.SET_NULL) |
|
|
|
old_instructor = models.TextField(blank=True, null=True) |
|
datetime = models.DateTimeField(blank=True, null=True) |
|
cost = models.DecimalField(max_digits=5, decimal_places=2) |
|
|
|
class Training(models.Model): |
|
user = models.ForeignKey(User, related_name='training', blank=True, null=True, on_delete=models.SET_NULL) |
|
session = models.ForeignKey(Session, related_name='students', blank=True, null=True, on_delete=models.SET_NULL) |
|
|
|
member_id = models.IntegerField(blank=True, null=True) |
|
attendance_status = models.TextField(blank=True, null=True) |
|
sign_up_date = models.DateField(default=date.today, blank=True, null=True) |
|
paid_date = models.DateField(default=date.today, blank=True, null=True)
|
|
|