jira-32 list of all task of junior API, changes in Search task API

This commit is contained in:
jain
2023-07-18 15:19:50 +05:30
parent 4d04f16cee
commit 4c0cac7cb0
13 changed files with 130 additions and 12 deletions

View File

@ -6,6 +6,7 @@ from rest_framework import serializers
from rest_framework_simplejwt.tokens import RefreshToken
from django.db import transaction
from django.contrib.auth.models import User
from datetime import datetime, time
"""Import Django app"""
# Import guardian's model,
# Import junior's model,
@ -23,6 +24,8 @@ from junior.serializers import JuniorDetailSerializer
from base.messages import ERROR_CODE, SUCCESS_CODE
from base.constants import NUMBER, JUN, ZOD, GRD
from junior.models import Junior, JuniorPoints
from .utils import real_time, convert_timedelta_into_datetime
# In this serializer file
@ -201,11 +204,27 @@ class TaskDetailsSerializer(serializers.ModelSerializer):
"""Task detail serializer"""
junior = JuniorDetailSerializer()
remaining_time = serializers.SerializerMethodField('get_remaining_time')
def get_remaining_time(self, obj):
""" remaining time to complete task"""
due_date_datetime = datetime.combine(obj.due_date, datetime.max.time())
# fetch real time
current_datetime = real_time()
# Perform the subtraction
if due_date_datetime > current_datetime:
time_difference = due_date_datetime - current_datetime
time_only = convert_timedelta_into_datetime(time_difference)
return str(time_difference.days) + ' days ' + str(time_only)
return str(NUMBER['zero']) + ' days ' + '00:00:00:00000'
class Meta(object):
"""Meta info"""
model = JuniorTask
fields = ['id', 'guardian', 'task_name', 'task_description', 'points', 'due_date','default_image', 'image',
'junior', 'task_status', 'is_active', 'created_at','updated_at']
'requested_on', 'rejected_on', 'completed_on',
'junior', 'task_status', 'is_active', 'remaining_time', 'created_at','updated_at']
class TopJuniorSerializer(serializers.ModelSerializer):
@ -303,12 +322,14 @@ class ApproveTaskSerializer(serializers.ModelSerializer):
instance.task_status = str(NUMBER['five'])
instance.is_approved = True
junior_data.total_task_points = junior_data.total_task_points + instance.points
instance.completed_on = datetime.today()
junior_data.save()
else:
# reject the task
instance.task_status = str(NUMBER['three'])
instance.is_approved = False
junior_data.total_task_points = junior_data.total_task_points - instance.points
instance.rejected_on = datetime.today()
junior_data.save()
instance.save()
return instance