|
|
@ -42,24 +42,31 @@ def process_image(upload): |
|
|
|
|
|
|
|
|
|
|
|
return small, medium, large |
|
|
|
return small, medium, large |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# member viewing member list or other member |
|
|
|
|
|
|
|
class OtherMemberSerializer(serializers.ModelSerializer): |
|
|
|
|
|
|
|
q = serializers.CharField(write_only=True, max_length=64) |
|
|
|
|
|
|
|
seq = serializers.IntegerField(write_only=True) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
|
|
|
model = models.Member |
|
|
|
|
|
|
|
fields = ['q', 'seq', 'id', 'preferred_name', 'last_name', 'status', 'current_start_date', 'photo_small', 'photo_large'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserEmailField(serializers.ModelField): |
|
|
|
class UserEmailField(serializers.ModelField): |
|
|
|
def to_representation(self, obj): |
|
|
|
def to_representation(self, obj): |
|
|
|
return getattr(obj.user, 'email', obj.old_email) |
|
|
|
return getattr(obj.user, 'email', obj.old_email) |
|
|
|
def to_internal_value(self, data): |
|
|
|
def to_internal_value(self, data): |
|
|
|
return serializers.EmailField().run_validation(data) |
|
|
|
return serializers.EmailField().run_validation(data) |
|
|
|
|
|
|
|
|
|
|
|
# member viewing himself |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AdminCardSerializer(serializers.ModelSerializer): |
|
|
|
|
|
|
|
card_number = serializers.CharField() |
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
|
|
|
model = models.Card |
|
|
|
|
|
|
|
fields = '__all__' |
|
|
|
|
|
|
|
read_only_fields = ['last_seen_at'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# member viewing other members |
|
|
|
|
|
|
|
class OtherMemberSerializer(serializers.ModelSerializer): |
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
|
|
|
model = models.Member |
|
|
|
|
|
|
|
fields = ['id', 'preferred_name', 'last_name', 'status', 'current_start_date', 'photo_small', 'photo_large'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# member viewing his own details |
|
|
|
class MemberSerializer(serializers.ModelSerializer): |
|
|
|
class MemberSerializer(serializers.ModelSerializer): |
|
|
|
photo = serializers.ImageField(write_only=True, required=False) |
|
|
|
photo = serializers.ImageField(write_only=True, required=False) |
|
|
|
email = UserEmailField(serializers.EmailField) |
|
|
|
email = UserEmailField(serializers.EmailField) |
|
|
@ -85,12 +92,15 @@ class MemberSerializer(serializers.ModelSerializer): |
|
|
|
'photo_medium', |
|
|
|
'photo_medium', |
|
|
|
'photo_small', |
|
|
|
'photo_small', |
|
|
|
'user', |
|
|
|
'user', |
|
|
|
|
|
|
|
'old_email', |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
def update(self, instance, validated_data): |
|
|
|
def update(self, instance, validated_data): |
|
|
|
if instance.user: |
|
|
|
if instance.user: |
|
|
|
instance.user.email = validated_data.get('email', instance.user.email) |
|
|
|
instance.user.email = validated_data.get('email', instance.user.email) |
|
|
|
instance.user.save() |
|
|
|
instance.user.save() |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
instance.old_email = validated_data.get('email', instance.old_email) |
|
|
|
|
|
|
|
|
|
|
|
photo = validated_data.get('photo', None) |
|
|
|
photo = validated_data.get('photo', None) |
|
|
|
if photo: |
|
|
|
if photo: |
|
|
@ -101,7 +111,7 @@ class MemberSerializer(serializers.ModelSerializer): |
|
|
|
|
|
|
|
|
|
|
|
return super().update(instance, validated_data) |
|
|
|
return super().update(instance, validated_data) |
|
|
|
|
|
|
|
|
|
|
|
# adming viewing member |
|
|
|
# admin viewing member details |
|
|
|
class AdminMemberSerializer(MemberSerializer): |
|
|
|
class AdminMemberSerializer(MemberSerializer): |
|
|
|
class Meta: |
|
|
|
class Meta: |
|
|
|
model = models.Member |
|
|
|
model = models.Member |
|
|
@ -113,10 +123,41 @@ class AdminMemberSerializer(MemberSerializer): |
|
|
|
'photo_medium', |
|
|
|
'photo_medium', |
|
|
|
'photo_small', |
|
|
|
'photo_small', |
|
|
|
'user', |
|
|
|
'user', |
|
|
|
|
|
|
|
'old_email', |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# member viewing member list or search result |
|
|
|
|
|
|
|
class SearchSerializer(serializers.Serializer): |
|
|
|
|
|
|
|
q = serializers.CharField(write_only=True, max_length=64) |
|
|
|
|
|
|
|
seq = serializers.IntegerField(write_only=True) |
|
|
|
|
|
|
|
member = serializers.SerializerMethodField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_member(self, obj): |
|
|
|
|
|
|
|
serializer = OtherMemberSerializer(obj) |
|
|
|
|
|
|
|
return serializer.data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# admin viewing search result |
|
|
|
|
|
|
|
class AdminSearchSerializer(serializers.Serializer): |
|
|
|
|
|
|
|
cards = serializers.SerializerMethodField() |
|
|
|
|
|
|
|
member = serializers.SerializerMethodField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_member(self, obj): |
|
|
|
|
|
|
|
serializer = AdminMemberSerializer(obj) |
|
|
|
|
|
|
|
return serializer.data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_cards(self, obj): |
|
|
|
|
|
|
|
if obj.user: |
|
|
|
|
|
|
|
queryset = obj.user.cards |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
queryset = models.Card.objects.filter(member_id=obj.id) |
|
|
|
|
|
|
|
serializer = AdminCardSerializer(data=queryset, many=True) |
|
|
|
|
|
|
|
serializer.is_valid() |
|
|
|
|
|
|
|
return serializer.data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserTrainingSerializer(serializers.ModelSerializer): |
|
|
|
class UserTrainingSerializer(serializers.ModelSerializer): |
|
|
|
class Meta: |
|
|
|
class Meta: |
|
|
|
model = models.Training |
|
|
|
model = models.Training |
|
|
@ -174,6 +215,7 @@ class AdminCourseSerializer(serializers.ModelSerializer): |
|
|
|
fields = '__all__' |
|
|
|
fields = '__all__' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RegistrationSerializer(RegisterSerializer): |
|
|
|
class RegistrationSerializer(RegisterSerializer): |
|
|
|
first_name = serializers.CharField(max_length=32) |
|
|
|
first_name = serializers.CharField(max_length=32) |
|
|
|
last_name = serializers.CharField(max_length=32) |
|
|
|
last_name = serializers.CharField(max_length=32) |
|
|
|