Merge pull request #86 from KiwiTechLLC/sprint3

jira-34 allocated points
This commit is contained in:
dilipshrivastwa-kiwi
2023-07-19 15:04:41 +05:30
committed by GitHub
5 changed files with 35 additions and 30 deletions

View File

@ -433,11 +433,11 @@ class ProfileAPIViewSet(viewsets.ModelViewSet):
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 UploadImageAPIViewSet(viewsets.ModelViewSet): class UploadImageAPIViewSet(viewsets.ModelViewSet):
"""Profile viewset""" """upload task image"""
queryset = DefaultTaskImages.objects.all() queryset = DefaultTaskImages.objects.all()
serializer_class = DefaultTaskImagesSerializer serializer_class = DefaultTaskImagesSerializer
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
"""profile view""" """upload images"""
image_data = request.data['image_url'] image_data = request.data['image_url']
filename = f"default_task_images/{image_data.name}" filename = f"default_task_images/{image_data.name}"
if image_data.size == NUMBER['zero']: if image_data.size == NUMBER['zero']:

View File

@ -324,8 +324,7 @@ class ApproveTaskSerializer(serializers.ModelSerializer):
# update total task point # update total task point
junior_data.total_task_points = junior_data.total_task_points + instance.points junior_data.total_task_points = junior_data.total_task_points + instance.points
# update complete time of task # update complete time of task
instance.completed_on = datetime.today() instance.completed_on = real_time()
junior_data.save()
else: else:
# reject the task # reject the task
instance.task_status = str(NUMBER['three']) instance.task_status = str(NUMBER['three'])
@ -333,8 +332,8 @@ class ApproveTaskSerializer(serializers.ModelSerializer):
# update total task point # update total task point
junior_data.total_task_points = junior_data.total_task_points - instance.points junior_data.total_task_points = junior_data.total_task_points - instance.points
# update reject time of task # update reject time of task
instance.rejected_on = datetime.today() instance.rejected_on = real_time()
junior_data.save()
instance.save() instance.save()
junior_data.save()
return instance return instance

View File

@ -16,6 +16,7 @@ from base.constants import PENDING, IN_PROGRESS, REJECTED, REQUESTED, COMPLETED,
from guardian.models import Guardian, JuniorTask from guardian.models import Guardian, JuniorTask
from account.models import UserEmailOtp from account.models import UserEmailOtp
from junior.utils import junior_notification_email, junior_approval_mail from junior.utils import junior_notification_email, junior_approval_mail
from guardian.utils import real_time
class ListCharField(serializers.ListField): class ListCharField(serializers.ListField):
@ -315,7 +316,7 @@ class CompleteTaskSerializer(serializers.ModelSerializer):
fields = ('id', 'image') fields = ('id', 'image')
def update(self, instance, validated_data): def update(self, instance, validated_data):
instance.image = validated_data.get('image', instance.image) instance.image = validated_data.get('image', instance.image)
instance.requested_on = datetime.today() instance.requested_on = real_time()
instance.task_status = str(NUMBER['four']) instance.task_status = str(NUMBER['four'])
instance.is_approved = False instance.is_approved = False
instance.save() instance.save()
@ -323,7 +324,7 @@ class CompleteTaskSerializer(serializers.ModelSerializer):
class JuniorPointsSerializer(serializers.ModelSerializer): class JuniorPointsSerializer(serializers.ModelSerializer):
"""Junior points serializer""" """Junior points serializer"""
junior_id = serializers.SerializerMethodField('get_junior_id')
total_points = serializers.SerializerMethodField('get_points') total_points = serializers.SerializerMethodField('get_points')
in_progress_task = serializers.SerializerMethodField('get_in_progress_task') in_progress_task = serializers.SerializerMethodField('get_in_progress_task')
completed_task = serializers.SerializerMethodField('get_completed_task') completed_task = serializers.SerializerMethodField('get_completed_task')
@ -332,6 +333,10 @@ class JuniorPointsSerializer(serializers.ModelSerializer):
pending_task = serializers.SerializerMethodField('get_pending_task') pending_task = serializers.SerializerMethodField('get_pending_task')
position = serializers.SerializerMethodField('get_position') position = serializers.SerializerMethodField('get_position')
def get_junior_id(self, obj):
"""junior id"""
return obj.junior.id
def get_position(self, obj): def get_position(self, obj):
data = JuniorPoints.objects.filter(junior=obj.junior).last() data = JuniorPoints.objects.filter(junior=obj.junior).last()
if data: if data:
@ -364,5 +369,5 @@ class JuniorPointsSerializer(serializers.ModelSerializer):
class Meta(object): class Meta(object):
"""Meta info""" """Meta info"""
model = Junior model = Junior
fields = ['id', 'total_points', 'position', 'pending_task', 'in_progress_task', 'completed_task', fields = ['junior_id', 'total_points', 'position', 'pending_task', 'in_progress_task', 'completed_task',
'requested_task', 'rejected_task'] 'requested_task', 'rejected_task']

View File

@ -232,25 +232,27 @@ class CompleteJuniorTaskAPIView(views.APIView):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
def put(self, request, format=None): def put(self, request, format=None):
task_id = self.request.data.get('task_id') try:
image = request.data['image'] task_id = self.request.data.get('task_id')
if image and image.size == NUMBER['zero']: image = request.data['image']
return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST) if image and image.size == NUMBER['zero']:
filename = f"images/{image.name}" return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST)
image_url = upload_image_to_alibaba(image, filename) filename = f"images/{image.name}"
# fetch junior query image_url = upload_image_to_alibaba(image, filename)
task_queryset = JuniorTask.objects.filter(id=task_id, junior__auth__email=self.request.user).last() # fetch junior query
if task_queryset: task_queryset = JuniorTask.objects.filter(id=task_id, junior__auth__email=self.request.user).last()
# use RemoveJuniorSerializer serializer if task_queryset:
serializer = CompleteTaskSerializer(task_queryset, data={'image': image_url}, partial=True) # use RemoveJuniorSerializer serializer
if serializer.is_valid(): serializer = CompleteTaskSerializer(task_queryset, data={'image': image_url}, partial=True)
# save serializer if serializer.is_valid():
serializer.save() # save serializer
return custom_response(SUCCESS_CODE['3032'], serializer.data, response_status=status.HTTP_200_OK) serializer.save()
return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST) return custom_response(SUCCESS_CODE['3032'], serializer.data, response_status=status.HTTP_200_OK)
else: return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST)
return custom_error_response(ERROR_CODE['2044'], response_status=status.HTTP_400_BAD_REQUEST) else:
return custom_error_response(ERROR_CODE['2044'], response_status=status.HTTP_400_BAD_REQUEST)
except Exception as e:
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
class JuniorPointsListAPIView(viewsets.ModelViewSet): class JuniorPointsListAPIView(viewsets.ModelViewSet):
"""Junior Points viewset""" """Junior Points viewset"""

View File

@ -117,8 +117,7 @@ REST_FRAMEWORK = {
} }
# define jwt token # define jwt token
SIMPLE_JWT = { SIMPLE_JWT = {
# 'ACCESS_TOKEN_LIFETIME': timedelta(hours=2, minutes=59, seconds=59, microseconds=999999), 'ACCESS_TOKEN_LIFETIME': timedelta(hours=2, minutes=59, seconds=59, microseconds=999999),
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5),
'REFRESH_TOKEN_LIFETIME': timedelta(hours=71, minutes=59, seconds=59, microseconds=999999), 'REFRESH_TOKEN_LIFETIME': timedelta(hours=71, minutes=59, seconds=59, microseconds=999999),
} }
# Database # Database