69 lines
3.1 KiB
Python
69 lines
3.1 KiB
Python
from rest_framework import serializers
|
|
from django.utils import timezone
|
|
from datetime import datetime
|
|
from members.models import Member, MemberRequest
|
|
from django.conf import settings
|
|
|
|
|
|
class MemberSerializer(serializers.Serializer):
|
|
id = serializers.IntegerField(read_only=True)
|
|
first_name = serializers.CharField(required=True, max_length=127)
|
|
last_name = serializers.CharField(required=True, max_length=127)
|
|
email = serializers.EmailField(min_length=None, max_length=None, required=True)
|
|
POR = serializers.CharField(max_length=255)
|
|
AYY = serializers.BooleanField(default=False)
|
|
jas = serializers.BooleanField(default=False)
|
|
created = serializers.DateTimeField(default=timezone.now)
|
|
paid = serializers.DateTimeField(default=datetime.fromtimestamp(0))
|
|
|
|
def create(self, validated_data):
|
|
'''
|
|
Create and return a new Member instance, given the validated data.
|
|
'''
|
|
return Member.objects.create(**validated_data)
|
|
|
|
def update(self, instance, validated_data):
|
|
'''
|
|
Update and return an existing Member instance given the validated data.
|
|
'''
|
|
instance.first_name = validated_data.get('first_name', instance.first_name)
|
|
instance.last_name = validated_data.get('last_name', instance.last_name)
|
|
instance.email = validated_data.get('email', instance.email)
|
|
instance.POR = validated_data.get('POR', instance.POR)
|
|
instance.AYY = validated_data.get('AYY', instance.AYY)
|
|
instance.jas = validated_data.get('jas', instance.jas)
|
|
instance.created = validated_data.get('created', instance.created)
|
|
instance.paid = validated_data.get('paid', instance.paid)
|
|
instance.save()
|
|
return instance
|
|
|
|
class MemberRequestSerializer(serializers.ModelSerializer):
|
|
id = serializers.IntegerField(read_only=True)
|
|
submitted = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
|
|
first_name = serializers.CharField(required=True, max_length=127)
|
|
last_name = serializers.CharField(required=True, max_length=127)
|
|
email = serializers.EmailField(min_length=None, max_length=None, required=True)
|
|
POR = serializers.CharField(max_length=255)
|
|
AYY = serializers.BooleanField(default=False)
|
|
jas = serializers.BooleanField(default=False)
|
|
|
|
def created(self, validated_data):
|
|
'''
|
|
Create and return a new MemberRequest instance, given the validated data.
|
|
'''
|
|
return MemberRequest.objects.create(**validated_data)
|
|
|
|
def update(self, instance, validated_data):
|
|
'''
|
|
Update and return an existing Member request instance given the validated data.
|
|
'''
|
|
instance.submitted = validated_data.get('submitted', instance.submitted)
|
|
instance.first_name = validated_data.get('first_name', instance.first_name)
|
|
instance.last_name = validated_data.get('last_name', instance.last_name)
|
|
instance.email = validated_data.get('email', instance.email)
|
|
instance.POR = validated_data.get('POR', instance.POR)
|
|
instance.AYY = validated_data.get('AYY', instance.AYY)
|
|
instance.jas = validated_data.get('jas', instance.jas)
|
|
instance.save()
|
|
return instance
|