changes in edit api, included first name, last name and username

This commit is contained in:
abutalib-kiwi
2023-08-07 15:05:41 +05:30
parent 83ec922584
commit f2cf1488e9

View File

@ -97,14 +97,18 @@ class GuardianSerializer(serializers.ModelSerializer):
guardian serializer guardian serializer
""" """
name = serializers.SerializerMethodField() name = serializers.SerializerMethodField()
email = serializers.CharField(required=False) first_name = serializers.SerializerMethodField()
last_name = serializers.SerializerMethodField()
username = serializers.SerializerMethodField()
email = serializers.EmailField(required=False)
class Meta: class Meta:
""" """
meta class meta class
""" """
model = Guardian model = Guardian
fields = ('id', 'name', 'dob', 'gender', 'country_code', 'phone', 'is_active', 'country_name', 'image', 'email') fields = ('id', 'name', 'first_name', 'last_name', 'username', 'dob', 'gender', 'country_code', 'phone',
'is_active', 'country_name', 'image', 'email')
def validate(self, attrs): def validate(self, attrs):
""" """
@ -137,25 +141,53 @@ class GuardianSerializer(serializers.ModelSerializer):
@staticmethod @staticmethod
def get_name(obj): def get_name(obj):
""" """
:param obj: user object :param obj: guardian object
:return: full name :return: full name
""" """
return f"{obj.user.first_name} {obj.user.last_name}" if obj.user.last_name else obj.user.first_name return f"{obj.user.first_name} {obj.user.last_name}" if obj.user.last_name else obj.user.first_name
@staticmethod
def get_first_name(obj):
"""
:param obj: guardian object
:return: first name
"""
return obj.user.first_name
@staticmethod
def get_last_name(obj):
"""
:param obj: guardian object
:return: last name
"""
return obj.user.last_name
@staticmethod
def get_username(obj):
"""
:param obj: guardian object
:return: email
"""
return obj.user.username
class JuniorSerializer(serializers.ModelSerializer): class JuniorSerializer(serializers.ModelSerializer):
""" """
junior serializer junior serializer
""" """
name = serializers.SerializerMethodField() name = serializers.SerializerMethodField()
email = serializers.CharField(required=False) first_name = serializers.SerializerMethodField()
last_name = serializers.SerializerMethodField()
username = serializers.SerializerMethodField()
email = serializers.EmailField(required=False)
class Meta: class Meta:
""" """
meta class meta class
""" """
model = Junior model = Junior
fields = ('id', 'name', 'dob', 'gender', 'country_code', 'phone', 'is_active', 'country_name', 'image', 'email') fields = ('id', 'name', 'first_name', 'last_name', 'username', 'dob', 'gender', 'country_code', 'phone',
'is_active', 'country_name', 'image', 'email')
def validate(self, attrs): def validate(self, attrs):
""" """
@ -187,11 +219,35 @@ class JuniorSerializer(serializers.ModelSerializer):
@staticmethod @staticmethod
def get_name(obj): def get_name(obj):
""" """
:param obj: user object :param obj: junior object
:return: full name :return: full name
""" """
return f"{obj.auth.first_name} {obj.auth.last_name}" if obj.auth.last_name else obj.auth.first_name return f"{obj.auth.first_name} {obj.auth.last_name}" if obj.auth.last_name else obj.auth.first_name
@staticmethod
def get_first_name(obj):
"""
:param obj: junior object
:return: first name
"""
return obj.auth.first_name
@staticmethod
def get_last_name(obj):
"""
:param obj: junior object
:return: last name
"""
return obj.auth.last_name
@staticmethod
def get_username(obj):
"""
:param obj: junior object
:return: email
"""
return obj.auth.username
class UserManagementDetailSerializer(serializers.ModelSerializer): class UserManagementDetailSerializer(serializers.ModelSerializer):
""" """
@ -229,10 +285,14 @@ class UserManagementDetailSerializer(serializers.ModelSerializer):
:return: associated user :return: associated user
""" """
if profile := obj.guardian_profile.all().first(): if profile := obj.guardian_profile.all().first():
junior = Junior.objects.filter(guardian_code__contains=[profile.guardian_code], is_verified=True) if profile.guardian_code:
serializer = JuniorSerializer(junior, many=True) junior = Junior.objects.filter(guardian_code__contains=[profile.guardian_code], is_verified=True)
return serializer.data serializer = JuniorSerializer(junior, many=True)
return serializer.data
elif profile := obj.junior_profile.all().first(): elif profile := obj.junior_profile.all().first():
guardian = Guardian.objects.filter(guardian_code__in=profile.guardian_code, is_verified=True) if profile.guardian_code:
serializer = GuardianSerializer(guardian, many=True) guardian = Guardian.objects.filter(guardian_code__in=profile.guardian_code, is_verified=True)
return serializer.data serializer = GuardianSerializer(guardian, many=True)
return serializer.data
else:
return None