Add address and minor fields to member in API and client
This commit is contained in:
@@ -7,26 +7,33 @@ from . import old_models
|
||||
|
||||
class Member(models.Model):
|
||||
user = models.OneToOneField(User, blank=True, null=True, on_delete=models.SET_NULL)
|
||||
first_name = models.CharField(max_length=32)
|
||||
last_name = models.CharField(max_length=32)
|
||||
|
||||
set_details = models.BooleanField(default=False)
|
||||
is_director = models.BooleanField(default=False)
|
||||
is_instructor = models.BooleanField(default=False)
|
||||
preferred_name = models.CharField(max_length=32, blank=True)
|
||||
status = models.CharField(max_length=32, blank=True)
|
||||
phone = models.CharField(max_length=32, blank=True)
|
||||
expire_date = models.DateField(default=date.today, blank=True, null=True)
|
||||
current_start_date = models.DateField(default=date.today, blank=True, null=True)
|
||||
application_date = models.DateField(default=date.today, blank=True, null=True)
|
||||
vetted_date = models.DateField(blank=True, null=True)
|
||||
monthly_fees = models.IntegerField(default=55, blank=True, null=True)
|
||||
emergency_contact_name = models.CharField(max_length=64, blank=True)
|
||||
emergency_contact_phone = models.CharField(max_length=32, blank=True)
|
||||
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)
|
||||
|
@@ -44,22 +44,6 @@ def process_image(upload):
|
||||
|
||||
|
||||
|
||||
class UserTrainingSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Training
|
||||
exclude = ['user']
|
||||
depth = 2
|
||||
|
||||
class UserSerializer(serializers.ModelSerializer):
|
||||
training = UserTrainingSerializer(many=True)
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['id', 'username', 'member', 'transactions', 'cards', 'training']
|
||||
depth = 1
|
||||
|
||||
|
||||
|
||||
# member viewing member list or other member
|
||||
class OtherMemberSerializer(serializers.ModelSerializer):
|
||||
q = serializers.CharField(write_only=True, max_length=64)
|
||||
@@ -79,6 +63,11 @@ class UserEmailField(serializers.ModelField):
|
||||
class MemberSerializer(serializers.ModelSerializer):
|
||||
photo = serializers.ImageField(write_only=True, required=False)
|
||||
email = UserEmailField(serializers.EmailField)
|
||||
phone = serializers.CharField()
|
||||
street_address = serializers.CharField()
|
||||
city = serializers.CharField()
|
||||
postal_code = serializers.CharField()
|
||||
|
||||
class Meta:
|
||||
model = models.Member
|
||||
fields = '__all__'
|
||||
@@ -126,6 +115,23 @@ class AdminMemberSerializer(MemberSerializer):
|
||||
|
||||
|
||||
|
||||
class UserTrainingSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Training
|
||||
exclude = ['user']
|
||||
depth = 2
|
||||
|
||||
class UserSerializer(serializers.ModelSerializer):
|
||||
training = UserTrainingSerializer(many=True)
|
||||
member = MemberSerializer()
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['id', 'username', 'member', 'transactions', 'cards', 'training']
|
||||
depth = 1
|
||||
|
||||
|
||||
|
||||
class TransactionSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.Transaction
|
||||
|
@@ -19,6 +19,12 @@ MEMBER_FIELDS = [
|
||||
'monthly_fees',
|
||||
'emergency_contact_name',
|
||||
'emergency_contact_phone',
|
||||
# minor -> is_minor
|
||||
'birthdate',
|
||||
'guardian_name',
|
||||
'street_address',
|
||||
# city, provice -> city
|
||||
'postal_code',
|
||||
]
|
||||
|
||||
TRANSACTION_FIELDS = [
|
||||
@@ -83,6 +89,10 @@ for o in old:
|
||||
for f in MEMBER_FIELDS:
|
||||
new[f] = o.__dict__.get(f, None)
|
||||
|
||||
if o.city and o.province:
|
||||
new['city'] = '{}, {}'.format(o.city, o.province)
|
||||
new['is_minor'] = o.minor
|
||||
|
||||
small, medium, large = None, None, None
|
||||
if str(o.id) in photo_folders:
|
||||
folder = 'old_photos/' + str(o.id)
|
||||
|
Reference in New Issue
Block a user