mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-08-26 06:09:41 +00:00
@ -308,6 +308,7 @@ class GuardianProfileSerializer(serializers.ModelSerializer):
|
|||||||
'is_active', 'is_complete_profile', 'created_at', 'image', 'signup_method',
|
'is_active', 'is_complete_profile', 'created_at', 'image', 'signup_method',
|
||||||
'updated_at', 'passcode']
|
'updated_at', 'passcode']
|
||||||
|
|
||||||
|
|
||||||
class ApproveJuniorSerializer(serializers.ModelSerializer):
|
class ApproveJuniorSerializer(serializers.ModelSerializer):
|
||||||
"""approve junior serializer"""
|
"""approve junior serializer"""
|
||||||
class Meta(object):
|
class Meta(object):
|
||||||
@ -319,9 +320,11 @@ class ApproveJuniorSerializer(serializers.ModelSerializer):
|
|||||||
"""update guardian code"""
|
"""update guardian code"""
|
||||||
instance = self.context['junior']
|
instance = self.context['junior']
|
||||||
instance.guardian_code = [self.context['guardian_code']]
|
instance.guardian_code = [self.context['guardian_code']]
|
||||||
|
instance.is_invited = True
|
||||||
instance.save()
|
instance.save()
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
|
|
||||||
class ApproveTaskSerializer(serializers.ModelSerializer):
|
class ApproveTaskSerializer(serializers.ModelSerializer):
|
||||||
"""approve task serializer"""
|
"""approve task serializer"""
|
||||||
class Meta(object):
|
class Meta(object):
|
||||||
|
@ -281,10 +281,13 @@ class ApproveJuniorAPIView(viewsets.ViewSet):
|
|||||||
serializer.save()
|
serializer.save()
|
||||||
return custom_response(SUCCESS_CODE['3023'], serializer.data, response_status=status.HTTP_200_OK)
|
return custom_response(SUCCESS_CODE['3023'], serializer.data, response_status=status.HTTP_200_OK)
|
||||||
else:
|
else:
|
||||||
|
queryset[1].guardian_code = None
|
||||||
|
queryset[1].save()
|
||||||
return custom_response(SUCCESS_CODE['3024'], response_status=status.HTTP_200_OK)
|
return custom_response(SUCCESS_CODE['3024'], response_status=status.HTTP_200_OK)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
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 ApproveTaskAPIView(viewsets.ViewSet):
|
class ApproveTaskAPIView(viewsets.ViewSet):
|
||||||
"""approve junior by guardian"""
|
"""approve junior by guardian"""
|
||||||
serializer_class = ApproveTaskSerializer
|
serializer_class = ApproveTaskSerializer
|
||||||
|
@ -5,6 +5,8 @@ from rest_framework import viewsets, status, generics,views
|
|||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
from rest_framework.pagination import PageNumberPagination
|
from rest_framework.pagination import PageNumberPagination
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from rest_framework.filters import SearchFilter
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
import requests
|
import requests
|
||||||
"""Django app import"""
|
"""Django app import"""
|
||||||
@ -115,8 +117,14 @@ class JuniorListAPIView(viewsets.ModelViewSet):
|
|||||||
serializer_class = JuniorDetailListSerializer
|
serializer_class = JuniorDetailListSerializer
|
||||||
queryset = Junior.objects.all()
|
queryset = Junior.objects.all()
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
|
filter_backends = (SearchFilter,)
|
||||||
|
search_fields = ['auth__first_name', 'auth__last_name']
|
||||||
http_method_names = ('get',)
|
http_method_names = ('get',)
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
queryset = self.filter_queryset(self.queryset)
|
||||||
|
return queryset
|
||||||
|
|
||||||
def list(self, request, *args, **kwargs):
|
def list(self, request, *args, **kwargs):
|
||||||
""" junior list"""
|
""" junior list"""
|
||||||
try:
|
try:
|
||||||
@ -124,7 +132,8 @@ class JuniorListAPIView(viewsets.ModelViewSet):
|
|||||||
guardian_data = Guardian.objects.filter(user__email=request.user).last()
|
guardian_data = Guardian.objects.filter(user__email=request.user).last()
|
||||||
# fetch junior object
|
# fetch junior object
|
||||||
if guardian_data:
|
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
|
# use JuniorDetailListSerializer serializer
|
||||||
serializer = JuniorDetailListSerializer(queryset, many=True)
|
serializer = JuniorDetailListSerializer(queryset, many=True)
|
||||||
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
||||||
@ -132,20 +141,22 @@ class JuniorListAPIView(viewsets.ModelViewSet):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
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 AddJuniorAPIView(viewsets.ModelViewSet):
|
class AddJuniorAPIView(viewsets.ModelViewSet):
|
||||||
"""Add Junior by guardian"""
|
"""Add Junior by guardian"""
|
||||||
queryset = Junior.objects.all()
|
queryset = Junior.objects.all()
|
||||||
serializer_class = AddJuniorSerializer
|
serializer_class = AddJuniorSerializer
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
http_method_names = ('post',)
|
http_method_names = ('post',)
|
||||||
|
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
""" junior list"""
|
""" junior list"""
|
||||||
try:
|
try:
|
||||||
info_data = {'user': request.user, 'relationship': str(request.data['relationship']), 'email': request.data['email'], 'first_name': request.data['first_name'],
|
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']}
|
'last_name': request.data['last_name']}
|
||||||
if User.objects.filter(username=request.data['email']):
|
if user := User.objects.filter(username=request.data['email']).first():
|
||||||
return custom_error_response(ERROR_CODE['2059'], response_status=status.HTTP_400_BAD_REQUEST)
|
self.associate_guardian(user)
|
||||||
|
return custom_response(SUCCESS_CODE['3021'], response_status=status.HTTP_200_OK)
|
||||||
# use AddJuniorSerializer serializer
|
# use AddJuniorSerializer serializer
|
||||||
serializer = AddJuniorSerializer(data=request.data, context=info_data)
|
serializer = AddJuniorSerializer(data=request.data, context=info_data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
@ -156,6 +167,14 @@ class AddJuniorAPIView(viewsets.ModelViewSet):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
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)
|
||||||
|
|
||||||
|
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):
|
class InvitedJuniorAPIView(viewsets.ModelViewSet):
|
||||||
"""Junior list of assosicated guardian"""
|
"""Junior list of assosicated guardian"""
|
||||||
|
|
||||||
|
@ -60,14 +60,14 @@ class ArticleSurveySerializer(serializers.ModelSerializer):
|
|||||||
article survey serializer
|
article survey serializer
|
||||||
"""
|
"""
|
||||||
id = serializers.IntegerField(required=False)
|
id = serializers.IntegerField(required=False)
|
||||||
survey_options = SurveyOptionSerializer(many=True)
|
options = SurveyOptionSerializer(many=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
"""
|
"""
|
||||||
meta class
|
meta class
|
||||||
"""
|
"""
|
||||||
model = ArticleSurvey
|
model = ArticleSurvey
|
||||||
fields = ('id', 'question', 'survey_options')
|
fields = ('id', 'question', 'options')
|
||||||
|
|
||||||
|
|
||||||
class ArticleSerializer(serializers.ModelSerializer):
|
class ArticleSerializer(serializers.ModelSerializer):
|
||||||
@ -120,7 +120,7 @@ class ArticleSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
for survey in article_survey:
|
for survey in article_survey:
|
||||||
survey = pop_id(survey)
|
survey = pop_id(survey)
|
||||||
options = survey.pop('survey_options')
|
options = survey.pop('options')
|
||||||
survey_obj = ArticleSurvey.objects.create(article=article, points=ARTICLE_SURVEY_POINTS, **survey)
|
survey_obj = ArticleSurvey.objects.create(article=article, points=ARTICLE_SURVEY_POINTS, **survey)
|
||||||
for option in options:
|
for option in options:
|
||||||
option = pop_id(option)
|
option = pop_id(option)
|
||||||
@ -165,7 +165,7 @@ class ArticleSerializer(serializers.ModelSerializer):
|
|||||||
# Update or create survey sections
|
# Update or create survey sections
|
||||||
for survey_data in article_survey:
|
for survey_data in article_survey:
|
||||||
survey_id = survey_data.get('id', None)
|
survey_id = survey_data.get('id', None)
|
||||||
options_data = survey_data.pop('survey_options')
|
options_data = survey_data.pop('options')
|
||||||
if survey_id:
|
if survey_id:
|
||||||
survey = ArticleSurvey.objects.get(id=survey_id, article=instance)
|
survey = ArticleSurvey.objects.get(id=survey_id, article=instance)
|
||||||
survey.question = survey_data.get('question', survey.question)
|
survey.question = survey_data.get('question', survey.question)
|
||||||
|
@ -125,12 +125,10 @@ class AdminCreatePasswordSerializer(serializers.ModelSerializer):
|
|||||||
if new_password != confirm_password:
|
if new_password != confirm_password:
|
||||||
raise serializers.ValidationError({'details': ERROR_CODE['2065']})
|
raise serializers.ValidationError({'details': ERROR_CODE['2065']})
|
||||||
|
|
||||||
user_otp_details = UserEmailOtp.objects.filter(email=email).last()
|
user_otp_details = UserEmailOtp.objects.filter(email=email, is_verified=True).last()
|
||||||
if not user_otp_details:
|
if not user_otp_details:
|
||||||
raise serializers.ValidationError({'details': ERROR_CODE['2064']})
|
raise serializers.ValidationError({'details': ERROR_CODE['2064']})
|
||||||
if user_otp_details.user_type != dict(USER_TYPE).get('3'):
|
if user_otp_details.user_type != dict(USER_TYPE).get('3'):
|
||||||
raise serializers.ValidationError({'details': ERROR_CODE['2063']})
|
raise serializers.ValidationError({'details': ERROR_CODE['2063']})
|
||||||
if not user_otp_details.is_verified:
|
|
||||||
raise serializers.ValidationError({'details': ERROR_CODE['2064']})
|
|
||||||
user_otp_details.delete()
|
user_otp_details.delete()
|
||||||
return attrs
|
return attrs
|
||||||
|
Reference in New Issue
Block a user