From bb3441e4eda4ec1e05ec9fad4e5fd679003316de Mon Sep 17 00:00:00 2001 From: jain Date: Wed, 23 Aug 2023 19:23:31 +0530 Subject: [PATCH] remove guardian code in both case --- junior/serializers.py | 7 +++++-- junior/views.py | 25 ++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/junior/serializers.py b/junior/serializers.py index 4530350..ec85608 100644 --- a/junior/serializers.py +++ b/junior/serializers.py @@ -505,8 +505,11 @@ class RemoveGuardianCodeSerializer(serializers.ModelSerializer): model = Junior fields = ('id', ) def update(self, instance, validated_data): - instance.guardian_code = None - instance.guardian_code_status = str(NUMBER['one']) + guardian_code = self.context['guardian_code'] + if self.instance and guardian_code in self.instance.guardian_code: + instance.guardian_code.remove(guardian_code) + if len(instance.guardian_code) == 0: + instance.guardian_code_status = str(NUMBER['one']) instance.save() return instance diff --git a/junior/views.py b/junior/views.py index 03f8ae7..558d9e5 100644 --- a/junior/views.py +++ b/junior/views.py @@ -724,10 +724,29 @@ class RemoveGuardianCodeAPIView(views.APIView): def put(self, request, format=None): try: - junior_queryset = Junior.objects.filter(auth=self.request.user).last() - if junior_queryset: + user_type = request.META.get('HTTP_USER_TYPE') + junior_id = request.data.get('junior_id') + guardian_id = request.data.get('guardian_id') + my_dict = {} + if user_type and str(user_type) == str(NUMBER['one']) and guardian_id: + queryset = Junior.objects.filter(auth__email=self.request.user, is_active=True, is_deleted=False).last() + guardian_code = Guardian.objects.filter(id=guardian_id).last().guardian_code + my_dict.update({"guardian_code": guardian_code}) + elif user_type and str(user_type) == str(NUMBER['two']) and junior_id: + guardian_code = Guardian.objects.filter(user=self.request.user, + is_active=True, is_deleted=False).last().guardian_code + queryset = Junior.objects.filter(id=junior_id).last() + my_dict.update({"guardian_code": guardian_code}) + else: + return custom_error_response( + ERROR_CODE["2069"], + response_status=status.HTTP_400_BAD_REQUEST + ) + if queryset: # use RemoveGuardianCodeSerializer serializer - serializer = RemoveGuardianCodeSerializer(junior_queryset, data=request.data, partial=True) + serializer = RemoveGuardianCodeSerializer(queryset, data=request.data, + context=my_dict, + partial=True) if serializer.is_valid(): # save serializer serializer.save()