mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-16 18:36:18 +00:00
changes in approve junior and add juinior api, added search in junior list api
This commit is contained in:
@ -308,6 +308,7 @@ class GuardianProfileSerializer(serializers.ModelSerializer):
|
||||
'is_active', 'is_complete_profile', 'created_at', 'image', 'signup_method',
|
||||
'updated_at', 'passcode']
|
||||
|
||||
|
||||
class ApproveJuniorSerializer(serializers.ModelSerializer):
|
||||
"""approve junior serializer"""
|
||||
class Meta(object):
|
||||
@ -319,9 +320,11 @@ class ApproveJuniorSerializer(serializers.ModelSerializer):
|
||||
"""update guardian code"""
|
||||
instance = self.context['junior']
|
||||
instance.guardian_code = [self.context['guardian_code']]
|
||||
instance.is_invited = True
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
|
||||
class ApproveTaskSerializer(serializers.ModelSerializer):
|
||||
"""approve task serializer"""
|
||||
class Meta(object):
|
||||
|
@ -281,10 +281,13 @@ class ApproveJuniorAPIView(viewsets.ViewSet):
|
||||
serializer.save()
|
||||
return custom_response(SUCCESS_CODE['3023'], serializer.data, response_status=status.HTTP_200_OK)
|
||||
else:
|
||||
queryset[1].guardian_code = None
|
||||
queryset[1].save()
|
||||
return custom_response(SUCCESS_CODE['3024'], response_status=status.HTTP_200_OK)
|
||||
except Exception as e:
|
||||
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
class ApproveTaskAPIView(viewsets.ViewSet):
|
||||
"""approve junior by guardian"""
|
||||
serializer_class = ApproveTaskSerializer
|
||||
|
@ -5,6 +5,8 @@ from rest_framework import viewsets, status, generics,views
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework.pagination import PageNumberPagination
|
||||
from django.contrib.auth.models import User
|
||||
from rest_framework.filters import SearchFilter
|
||||
|
||||
import datetime
|
||||
import requests
|
||||
"""Django app import"""
|
||||
@ -115,8 +117,14 @@ class JuniorListAPIView(viewsets.ModelViewSet):
|
||||
serializer_class = JuniorDetailListSerializer
|
||||
queryset = Junior.objects.all()
|
||||
permission_classes = [IsAuthenticated]
|
||||
filter_backends = (SearchFilter,)
|
||||
search_fields = ['auth__first_name', 'auth__last_name']
|
||||
http_method_names = ('get',)
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = self.filter_queryset(self.queryset)
|
||||
return queryset
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
""" junior list"""
|
||||
try:
|
||||
@ -124,7 +132,8 @@ class JuniorListAPIView(viewsets.ModelViewSet):
|
||||
guardian_data = Guardian.objects.filter(user__email=request.user).last()
|
||||
# fetch junior object
|
||||
if guardian_data:
|
||||
queryset = Junior.objects.filter(guardian_code__icontains=str(guardian_data.guardian_code))
|
||||
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)
|
||||
@ -132,20 +141,21 @@ class JuniorListAPIView(viewsets.ModelViewSet):
|
||||
except Exception as e:
|
||||
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
class AddJuniorAPIView(viewsets.ModelViewSet):
|
||||
"""Add Junior by guardian"""
|
||||
queryset = Junior.objects.all()
|
||||
serializer_class = AddJuniorSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
http_method_names = ('post',)
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
""" junior list"""
|
||||
try:
|
||||
info_data = {'user': request.user, 'relationship': str(request.data['relationship']), 'email': request.data['email'], 'first_name': request.data['first_name'],
|
||||
'last_name': request.data['last_name']}
|
||||
if User.objects.filter(username=request.data['email']):
|
||||
return custom_error_response(ERROR_CODE['2059'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
if user := User.objects.filter(username=request.data['email']):
|
||||
self.associate_guardian(user)
|
||||
# use AddJuniorSerializer serializer
|
||||
serializer = AddJuniorSerializer(data=request.data, context=info_data)
|
||||
if serializer.is_valid():
|
||||
@ -156,6 +166,14 @@ class AddJuniorAPIView(viewsets.ModelViewSet):
|
||||
except Exception as e:
|
||||
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
def associate_guardian(self, user):
|
||||
junior = Junior.objects.filter(auth=user).first()
|
||||
guardian = Guardian.objects.filter(user=self.request.user).first()
|
||||
junior.guardian_code = [guardian.guardian_code]
|
||||
junior.save()
|
||||
return True
|
||||
|
||||
|
||||
class InvitedJuniorAPIView(viewsets.ModelViewSet):
|
||||
"""Junior list of assosicated guardian"""
|
||||
|
||||
|
Reference in New Issue
Block a user