mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-27 00:54:54 +00:00
guardian list api
This commit is contained in:
@ -92,7 +92,8 @@ ERROR_CODE = {
|
|||||||
"2063": "Unauthorized access.",
|
"2063": "Unauthorized access.",
|
||||||
"2064": "To change your password first request an OTP and get it verify then change your password.",
|
"2064": "To change your password first request an OTP and get it verify then change your password.",
|
||||||
"2065": "Passwords do not match. Please try again.",
|
"2065": "Passwords do not match. Please try again.",
|
||||||
"2066": "Task does not exist or not in expired state"
|
"2066": "Task does not exist or not in expired state",
|
||||||
|
"2067": "No guardian associated with this junior"
|
||||||
}
|
}
|
||||||
"""Success message code"""
|
"""Success message code"""
|
||||||
SUCCESS_CODE = {
|
SUCCESS_CODE = {
|
||||||
|
|||||||
@ -23,7 +23,7 @@ from account.utils import generate_code
|
|||||||
from junior.serializers import JuniorDetailSerializer
|
from junior.serializers import JuniorDetailSerializer
|
||||||
from base.messages import ERROR_CODE, SUCCESS_CODE
|
from base.messages import ERROR_CODE, SUCCESS_CODE
|
||||||
from base.constants import NUMBER, JUN, ZOD, GRD
|
from base.constants import NUMBER, JUN, ZOD, GRD
|
||||||
from junior.models import Junior, JuniorPoints
|
from junior.models import Junior, JuniorPoints, JuniorGuardianRelationship
|
||||||
from .utils import real_time, convert_timedelta_into_datetime, update_referral_points
|
from .utils import real_time, convert_timedelta_into_datetime, update_referral_points
|
||||||
# notification's constant
|
# notification's constant
|
||||||
from notifications.constants import TASK_POINTS, TASK_REJECTED
|
from notifications.constants import TASK_POINTS, TASK_REJECTED
|
||||||
@ -386,3 +386,36 @@ class ApproveTaskSerializer(serializers.ModelSerializer):
|
|||||||
junior_data.save()
|
junior_data.save()
|
||||||
return junior_details
|
return junior_details
|
||||||
|
|
||||||
|
class GuardianDetailListSerializer(serializers.ModelSerializer):
|
||||||
|
"""Guardian serializer"""
|
||||||
|
|
||||||
|
first_name = serializers.SerializerMethodField('get_first_name')
|
||||||
|
last_name = serializers.SerializerMethodField('get_last_name')
|
||||||
|
email = serializers.SerializerMethodField('get_email')
|
||||||
|
image = serializers.SerializerMethodField('get_image')
|
||||||
|
guardian_id = serializers.SerializerMethodField('get_guardian_id')
|
||||||
|
|
||||||
|
class Meta(object):
|
||||||
|
"""Meta info"""
|
||||||
|
model = JuniorGuardianRelationship
|
||||||
|
fields = ['guardian_id', 'first_name', 'last_name', 'email', 'relationship', 'image', 'created_at',
|
||||||
|
'updated_at']
|
||||||
|
|
||||||
|
def get_guardian_id(self,obj):
|
||||||
|
"""first name of guardian"""
|
||||||
|
return obj.guardian.id
|
||||||
|
def get_first_name(self,obj):
|
||||||
|
"""first name of guardian"""
|
||||||
|
return obj.guardian.user.first_name
|
||||||
|
|
||||||
|
def get_last_name(self,obj):
|
||||||
|
"""last name of guardian"""
|
||||||
|
return obj.guardian.user.last_name
|
||||||
|
|
||||||
|
def get_email(self,obj):
|
||||||
|
"""emailof guardian"""
|
||||||
|
return obj.guardian.user.email
|
||||||
|
|
||||||
|
def get_image(self,obj):
|
||||||
|
"""first name of guardian"""
|
||||||
|
return obj.guardian.image
|
||||||
|
|||||||
@ -26,9 +26,10 @@ from django.utils import timezone
|
|||||||
# Import notification constant
|
# Import notification constant
|
||||||
# Import send_notification function
|
# Import send_notification function
|
||||||
from .serializers import (UserSerializer, CreateGuardianSerializer, TaskSerializer, TaskDetailsSerializer,
|
from .serializers import (UserSerializer, CreateGuardianSerializer, TaskSerializer, TaskDetailsSerializer,
|
||||||
TopJuniorSerializer, ApproveJuniorSerializer, ApproveTaskSerializer)
|
TopJuniorSerializer, ApproveJuniorSerializer, ApproveTaskSerializer,
|
||||||
|
GuardianDetailListSerializer)
|
||||||
from .models import Guardian, JuniorTask
|
from .models import Guardian, JuniorTask
|
||||||
from junior.models import Junior, JuniorPoints
|
from junior.models import Junior, JuniorPoints, JuniorGuardianRelationship
|
||||||
from account.models import UserEmailOtp, UserNotification
|
from account.models import UserEmailOtp, UserNotification
|
||||||
from .tasks import generate_otp
|
from .tasks import generate_otp
|
||||||
from account.utils import custom_response, custom_error_response, OTP_EXPIRY, send_otp_email
|
from account.utils import custom_response, custom_error_response, OTP_EXPIRY, send_otp_email
|
||||||
@ -329,32 +330,21 @@ class ApproveTaskAPIView(viewsets.ViewSet):
|
|||||||
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
class GuardianListAPIView(viewsets.ModelViewSet):
|
class GuardianListAPIView(viewsets.ModelViewSet):
|
||||||
"""Junior list of assosicated guardian"""
|
"""Guardian list of assosicated junior"""
|
||||||
pass
|
|
||||||
|
|
||||||
# serializer_class = JuniorDetailListSerializer
|
serializer_class = GuardianDetailListSerializer
|
||||||
# queryset = Junior.objects.all()
|
permission_classes = [IsAuthenticated]
|
||||||
# permission_classes = [IsAuthenticated]
|
http_method_names = ('get',)
|
||||||
# filter_backends = (SearchFilter,)
|
|
||||||
# search_fields = ['auth__first_name', 'auth__last_name']
|
def list(self, request, *args, **kwargs):
|
||||||
# http_method_names = ('get',)
|
""" junior list"""
|
||||||
#
|
try:
|
||||||
# def get_queryset(self):
|
guardian_data = JuniorGuardianRelationship.objects.filter(junior__auth__email=self.request.user)
|
||||||
# queryset = self.filter_queryset(self.queryset)
|
# fetch junior object
|
||||||
# return queryset
|
if guardian_data:
|
||||||
#
|
# use GuardianDetailListSerializer serializer
|
||||||
# def list(self, request, *args, **kwargs):
|
serializer = GuardianDetailListSerializer(guardian_data, many=True)
|
||||||
# """ junior list"""
|
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
||||||
# try:
|
return custom_error_response(ERROR_CODE['2067'], response_status=status.HTTP_200_OK)
|
||||||
# update_positions_based_on_points()
|
except Exception as e:
|
||||||
# guardian_data = Guardian.objects.filter(user__email=request.user).last()
|
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
# # fetch junior object
|
|
||||||
# if guardian_data:
|
|
||||||
# queryset = self.get_queryset()
|
|
||||||
# queryset = queryset.filter(guardian_code__icontains=str(guardian_data.guardian_code))
|
|
||||||
# # use JuniorDetailListSerializer serializer
|
|
||||||
# serializer = JuniorDetailListSerializer(queryset, many=True)
|
|
||||||
# return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
|
||||||
# return custom_error_response(ERROR_CODE['2045'], response_status=status.HTTP_200_OK)
|
|
||||||
# except Exception as e:
|
|
||||||
# return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
|
||||||
|
|||||||
@ -89,7 +89,10 @@ class CreateJuniorSerializer(serializers.ModelSerializer):
|
|||||||
"""condition for guardian code"""
|
"""condition for guardian code"""
|
||||||
if guardian_code:
|
if guardian_code:
|
||||||
junior.guardian_code = guardian_code
|
junior.guardian_code = guardian_code
|
||||||
junior.dob = validated_data.get('dob',junior.dob)
|
guardian_data = Guardian.objects.filter(guardian_code=guardian_code[0]).last()
|
||||||
|
if guardian_data:
|
||||||
|
JuniorGuardianRelationship.objects.get_or_create(guardian=guardian_data, junior=junior)
|
||||||
|
junior.dob = validated_data.get('dob', junior.dob)
|
||||||
junior.passcode = validated_data.get('passcode', junior.passcode)
|
junior.passcode = validated_data.get('passcode', junior.passcode)
|
||||||
junior.country_name = validated_data.get('country_name', junior.country_name)
|
junior.country_name = validated_data.get('country_name', junior.country_name)
|
||||||
"""Update country code and phone number"""
|
"""Update country code and phone number"""
|
||||||
@ -289,7 +292,6 @@ class AddJuniorSerializer(serializers.ModelSerializer):
|
|||||||
UserNotification.objects.get_or_create(user=user_data)
|
UserNotification.objects.get_or_create(user=user_data)
|
||||||
"""Notification email"""
|
"""Notification email"""
|
||||||
junior_notification_email(email, full_name, email, password)
|
junior_notification_email(email, full_name, email, password)
|
||||||
junior_approval_mail(guardian, full_name)
|
|
||||||
# push notification
|
# push notification
|
||||||
send_notification.delay(SKIPPED_PROFILE_SETUP, None, junior_data.auth.id, {})
|
send_notification.delay(SKIPPED_PROFILE_SETUP, None, junior_data.auth.id, {})
|
||||||
return junior_data
|
return junior_data
|
||||||
|
|||||||
@ -27,7 +27,7 @@ import requests
|
|||||||
# Import upload_image_to_alibaba
|
# Import upload_image_to_alibaba
|
||||||
# Import custom_response, custom_error_response
|
# Import custom_response, custom_error_response
|
||||||
# Import constants
|
# Import constants
|
||||||
from junior.models import Junior, JuniorPoints
|
from junior.models import Junior, JuniorPoints, JuniorGuardianRelationship
|
||||||
from .serializers import (CreateJuniorSerializer, JuniorDetailListSerializer, AddJuniorSerializer,\
|
from .serializers import (CreateJuniorSerializer, JuniorDetailListSerializer, AddJuniorSerializer,\
|
||||||
RemoveJuniorSerializer, CompleteTaskSerializer, JuniorPointsSerializer,
|
RemoveJuniorSerializer, CompleteTaskSerializer, JuniorPointsSerializer,
|
||||||
AddGuardianSerializer, StartTaskSerializer, ReAssignTaskSerializer)
|
AddGuardianSerializer, StartTaskSerializer, ReAssignTaskSerializer)
|
||||||
@ -144,7 +144,6 @@ class JuniorListAPIView(viewsets.ModelViewSet):
|
|||||||
|
|
||||||
class AddJuniorAPIView(viewsets.ModelViewSet):
|
class AddJuniorAPIView(viewsets.ModelViewSet):
|
||||||
"""Add Junior by guardian"""
|
"""Add Junior by guardian"""
|
||||||
queryset = Junior.objects.all()
|
|
||||||
serializer_class = AddJuniorSerializer
|
serializer_class = AddJuniorSerializer
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
http_method_names = ('post',)
|
http_method_names = ('post',)
|
||||||
@ -172,6 +171,8 @@ class AddJuniorAPIView(viewsets.ModelViewSet):
|
|||||||
guardian = Guardian.objects.filter(user=self.request.user).first()
|
guardian = Guardian.objects.filter(user=self.request.user).first()
|
||||||
junior.guardian_code = [guardian.guardian_code]
|
junior.guardian_code = [guardian.guardian_code]
|
||||||
junior.save()
|
junior.save()
|
||||||
|
JuniorGuardianRelationship.objects.get_or_create(guardian=guardian, junior=junior,
|
||||||
|
relationship=str(self.request.data['relationship']))
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user