mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2026-10-23 10:47:56 +00:00
jira-33 mark as complete the task
This commit is contained in:
+15
-1
@@ -3,7 +3,7 @@
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
import random
|
from datetime import datetime
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from rest_framework_simplejwt.tokens import RefreshToken
|
from rest_framework_simplejwt.tokens import RefreshToken
|
||||||
|
|
||||||
@@ -306,3 +306,17 @@ class RemoveJuniorSerializer(serializers.ModelSerializer):
|
|||||||
instance.save()
|
instance.save()
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
|
|
||||||
|
class CompleteTaskSerializer(serializers.ModelSerializer):
|
||||||
|
"""User task Serializer"""
|
||||||
|
class Meta(object):
|
||||||
|
"""Meta class"""
|
||||||
|
model = JuniorTask
|
||||||
|
fields = ('id', 'image')
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
instance.image = validated_data.get('image', instance.image)
|
||||||
|
instance.requested_on = datetime.today()
|
||||||
|
instance.task_status = str(NUMBER['four'])
|
||||||
|
instance.is_approved = False
|
||||||
|
instance.save()
|
||||||
|
return instance
|
||||||
|
|||||||
+4
-2
@@ -2,7 +2,8 @@
|
|||||||
"""Django import"""
|
"""Django import"""
|
||||||
from django.urls import path, include
|
from django.urls import path, include
|
||||||
from .views import (UpdateJuniorProfile, ValidateGuardianCode, JuniorListAPIView, AddJuniorAPIView,
|
from .views import (UpdateJuniorProfile, ValidateGuardianCode, JuniorListAPIView, AddJuniorAPIView,
|
||||||
InvitedJuniorAPIView, FilterJuniorAPIView, RemoveJuniorAPIView, JuniorTaskListAPIView)
|
InvitedJuniorAPIView, FilterJuniorAPIView, RemoveJuniorAPIView, JuniorTaskListAPIView,
|
||||||
|
CompleteJuniorTaskAPIView)
|
||||||
"""Third party import"""
|
"""Third party import"""
|
||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
|
|
||||||
@@ -36,5 +37,6 @@ router.register('junior-task-list', JuniorTaskListAPIView, basename='junior-task
|
|||||||
# Define url pattern"""
|
# Define url pattern"""
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('api/v1/', include(router.urls)),
|
path('api/v1/', include(router.urls)),
|
||||||
path('api/v1/remove-junior/', RemoveJuniorAPIView.as_view())
|
path('api/v1/remove-junior/', RemoveJuniorAPIView.as_view()),
|
||||||
|
path('api/v1/complete-task/', CompleteJuniorTaskAPIView.as_view())
|
||||||
]
|
]
|
||||||
|
|||||||
+29
-2
@@ -17,7 +17,7 @@ from rest_framework.pagination import PageNumberPagination
|
|||||||
# Import account's task
|
# Import account's task
|
||||||
from junior.models import Junior
|
from junior.models import Junior
|
||||||
from .serializers import (CreateJuniorSerializer, JuniorDetailListSerializer, AddJuniorSerializer,\
|
from .serializers import (CreateJuniorSerializer, JuniorDetailListSerializer, AddJuniorSerializer,\
|
||||||
RemoveJuniorSerializer)
|
RemoveJuniorSerializer, CompleteTaskSerializer)
|
||||||
from guardian.models import Guardian, JuniorTask
|
from guardian.models import Guardian, JuniorTask
|
||||||
from guardian.serializers import TaskDetailsSerializer
|
from guardian.serializers import TaskDetailsSerializer
|
||||||
from base.messages import ERROR_CODE, SUCCESS_CODE
|
from base.messages import ERROR_CODE, SUCCESS_CODE
|
||||||
@@ -164,7 +164,7 @@ class FilterJuniorAPIView(viewsets.ModelViewSet):
|
|||||||
|
|
||||||
|
|
||||||
class RemoveJuniorAPIView(views.APIView):
|
class RemoveJuniorAPIView(views.APIView):
|
||||||
"""Eater Update API"""
|
"""Remove junior API"""
|
||||||
serializer_class = RemoveJuniorSerializer
|
serializer_class = RemoveJuniorSerializer
|
||||||
model = Junior
|
model = Junior
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
@@ -215,3 +215,30 @@ class JuniorTaskListAPIView(viewsets.ModelViewSet):
|
|||||||
# use TaskDetailsSerializer serializer
|
# use TaskDetailsSerializer serializer
|
||||||
serializer = TaskDetailsSerializer(paginated_queryset, many=True)
|
serializer = TaskDetailsSerializer(paginated_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)
|
||||||
|
|
||||||
|
|
||||||
|
class CompleteJuniorTaskAPIView(views.APIView):
|
||||||
|
"""Update junior task API"""
|
||||||
|
serializer_class = CompleteTaskSerializer
|
||||||
|
model = JuniorTask
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def put(self, request, format=None):
|
||||||
|
task_id = self.request.data.get('task_id')
|
||||||
|
image = request.data['image']
|
||||||
|
if image and image.size == NUMBER['zero']:
|
||||||
|
return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
filename = f"images/{image.name}"
|
||||||
|
image_url = upload_image_to_alibaba(image, filename)
|
||||||
|
# fetch junior query
|
||||||
|
task_queryset = JuniorTask.objects.filter(id=task_id, junior__auth__email=self.request.user).last()
|
||||||
|
if task_queryset:
|
||||||
|
# use RemoveJuniorSerializer serializer
|
||||||
|
serializer = CompleteTaskSerializer(task_queryset, data={'image': image_url}, partial=True)
|
||||||
|
if serializer.is_valid():
|
||||||
|
# save serializer
|
||||||
|
serializer.save()
|
||||||
|
return custom_response(SUCCESS_CODE['3022'], serializer.data, response_status=status.HTTP_200_OK)
|
||||||
|
return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
else:
|
||||||
|
return custom_error_response(ERROR_CODE['2034'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|||||||
Reference in New Issue
Block a user