mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-14 09:37:20 +00:00
limit for 3 guardian code and article list API optimization
This commit is contained in:
@ -43,7 +43,8 @@ FILE_SIZE = 5 * 1024 * 1024
|
||||
|
||||
# String constant for configurable date for allocation lock period
|
||||
ALLOCATION_LOCK_DATE = 1
|
||||
|
||||
# guardian code status tuple
|
||||
guardian_code_tuple = ('1','3')
|
||||
"""user type"""
|
||||
USER_TYPE = (
|
||||
('1', 'junior'),
|
||||
|
@ -10,7 +10,7 @@ from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework import viewsets, status
|
||||
from rest_framework.pagination import PageNumberPagination
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
from base.constants import guardian_code_tuple
|
||||
from rest_framework.filters import SearchFilter
|
||||
from django.utils import timezone
|
||||
|
||||
@ -178,7 +178,8 @@ class CreateTaskAPIView(viewsets.ModelViewSet):
|
||||
junior = request.data['junior']
|
||||
junior_id = Junior.objects.filter(id=junior).last()
|
||||
guardian_data = Guardian.objects.filter(user=request.user).last()
|
||||
if guardian_data.guardian_code not in junior_id.guardian_code:
|
||||
if (guardian_data.guardian_code not in junior_id.guardian_code or
|
||||
junior_id.guardian_code_status in guardian_code_tuple):
|
||||
return custom_error_response(ERROR_CODE['2078'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||
allowed_extensions = ['.jpg', '.jpeg', '.png']
|
||||
if not any(extension in str(image) for extension in allowed_extensions):
|
||||
|
@ -191,6 +191,8 @@ class AddJuniorAPIView(viewsets.ModelViewSet):
|
||||
return custom_error_response(ERROR_CODE['2077'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||
elif not data:
|
||||
return custom_error_response(ERROR_CODE['2076'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||
if data == "Max":
|
||||
return custom_error_response(ERROR_CODE['2081'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||
return custom_response(SUCCESS_CODE['3021'], response_status=status.HTTP_200_OK)
|
||||
# use AddJuniorSerializer serializer
|
||||
serializer = AddJuniorSerializer(data=request.data, context=info_data)
|
||||
@ -209,10 +211,12 @@ class AddJuniorAPIView(viewsets.ModelViewSet):
|
||||
return none
|
||||
if junior.guardian_code and (guardian.guardian_code in junior.guardian_code):
|
||||
return False
|
||||
if type(junior.guardian_code) is list:
|
||||
if not junior.guardian_code:
|
||||
junior.guardian_code = [guardian.guardian_code]
|
||||
if type(junior.guardian_code) is list and len(junior.guardian_code) < 4:
|
||||
junior.guardian_code.append(guardian.guardian_code)
|
||||
else:
|
||||
junior.guardian_code = [guardian.guardian_code]
|
||||
return "Max"
|
||||
junior.guardian_code_status = str(NUMBER['two'])
|
||||
junior.save()
|
||||
JuniorGuardianRelationship.objects.get_or_create(guardian=guardian, junior=junior,
|
||||
|
@ -219,8 +219,7 @@ class ArticleListSerializer(serializers.ModelSerializer):
|
||||
"""
|
||||
serializer for article API
|
||||
"""
|
||||
article_cards = ArticleCardSerializer(many=True)
|
||||
article_survey = ArticleSurveySerializer(many=True)
|
||||
image = serializers.SerializerMethodField('get_image')
|
||||
total_points = serializers.SerializerMethodField('get_total_points')
|
||||
is_completed = serializers.SerializerMethodField('get_is_completed')
|
||||
|
||||
@ -229,8 +228,13 @@ class ArticleListSerializer(serializers.ModelSerializer):
|
||||
meta class
|
||||
"""
|
||||
model = Article
|
||||
fields = ('id', 'title', 'description', 'article_cards', 'article_survey', 'total_points', 'is_completed')
|
||||
fields = ('id', 'title', 'description','image', 'total_points', 'is_completed')
|
||||
|
||||
def get_image(self, obj):
|
||||
"""article image"""
|
||||
if obj.article_cards.first():
|
||||
return obj.article_cards.first().image_url
|
||||
return None
|
||||
def get_total_points(self, obj):
|
||||
"""total points of article"""
|
||||
total_question = ArticleSurvey.objects.filter(article=obj).count()
|
||||
|
Reference in New Issue
Block a user