mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-17 02:45:08 +00:00
task list api modified
This commit is contained in:
@ -222,9 +222,15 @@ class TaskDetailsSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
def get_remaining_time(self, obj):
|
def get_remaining_time(self, obj):
|
||||||
""" remaining time to complete task"""
|
""" remaining time to complete task"""
|
||||||
|
import pytz
|
||||||
|
from django.utils import timezone
|
||||||
due_date_datetime = datetime.combine(obj.due_date, datetime.max.time())
|
due_date_datetime = datetime.combine(obj.due_date, datetime.max.time())
|
||||||
# fetch real time
|
# fetch real time
|
||||||
current_datetime = real_time()
|
# current_datetime = real_time()
|
||||||
|
print(due_date_datetime.astimezone(pytz.utc), datetime.now(pytz.utc), timezone.now().astimezone(pytz.utc))
|
||||||
|
# new code
|
||||||
|
due_date_datetime = due_date_datetime.astimezone(pytz.utc)
|
||||||
|
current_datetime = timezone.now().astimezone(pytz.utc)
|
||||||
# Perform the subtraction
|
# Perform the subtraction
|
||||||
if due_date_datetime > current_datetime:
|
if due_date_datetime > current_datetime:
|
||||||
time_difference = due_date_datetime - current_datetime
|
time_difference = due_date_datetime - current_datetime
|
||||||
|
@ -10,6 +10,8 @@ from rest_framework.permissions import IsAuthenticated
|
|||||||
from rest_framework import viewsets, status
|
from rest_framework import viewsets, status
|
||||||
from rest_framework.pagination import PageNumberPagination
|
from rest_framework.pagination import PageNumberPagination
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from rest_framework.filters import SearchFilter
|
||||||
|
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
|
||||||
# Import guardian's model,
|
# Import guardian's model,
|
||||||
@ -126,37 +128,69 @@ class AllTaskListAPIView(viewsets.ModelViewSet):
|
|||||||
serializer = TaskDetailsSerializer(queryset, many=True)
|
serializer = TaskDetailsSerializer(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 TaskListAPIView(viewsets.ModelViewSet):
|
||||||
|
# """Update guardian profile"""
|
||||||
|
# serializer_class = TaskDetailsSerializer
|
||||||
|
# permission_classes = [IsAuthenticated]
|
||||||
|
# pagination_class = PageNumberPagination
|
||||||
|
# http_method_names = ('get',)
|
||||||
|
#
|
||||||
|
# def list(self, request, *args, **kwargs):
|
||||||
|
# """Create guardian profile"""
|
||||||
|
# try:
|
||||||
|
# status_value = self.request.GET.get('status')
|
||||||
|
# search = self.request.GET.get('search')
|
||||||
|
# if search and str(status_value) == '0':
|
||||||
|
# queryset = JuniorTask.objects.filter(guardian__user=request.user,
|
||||||
|
# task_name__icontains=search).order_by('due_date', 'created_at')
|
||||||
|
# elif search and str(status_value) != '0':
|
||||||
|
# queryset = JuniorTask.objects.filter(guardian__user=request.user,task_name__icontains=search,
|
||||||
|
# task_status=status_value).order_by('due_date', 'created_at')
|
||||||
|
# if search is None and str(status_value) == '0':
|
||||||
|
# queryset = JuniorTask.objects.filter(guardian__user=request.user).order_by('due_date', 'created_at')
|
||||||
|
# elif search is None and str(status_value) != '0':
|
||||||
|
# queryset = JuniorTask.objects.filter(guardian__user=request.user,
|
||||||
|
# task_status=status_value).order_by('due_date','created_at')
|
||||||
|
# paginator = self.pagination_class()
|
||||||
|
# # use Pagination
|
||||||
|
# paginated_queryset = paginator.paginate_queryset(queryset, request)
|
||||||
|
# # use TaskDetailsSerializer serializer
|
||||||
|
# serializer = TaskDetailsSerializer(paginated_queryset, many=True)
|
||||||
|
# return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
||||||
|
# except Exception as e:
|
||||||
|
# return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
class TaskListAPIView(viewsets.ModelViewSet):
|
class TaskListAPIView(viewsets.ModelViewSet):
|
||||||
"""Update guardian profile"""
|
"""Update guardian profile"""
|
||||||
serializer_class = TaskDetailsSerializer
|
serializer_class = TaskDetailsSerializer
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
|
filter_backends = (SearchFilter,)
|
||||||
|
search_fields = ['task_name', ]
|
||||||
pagination_class = PageNumberPagination
|
pagination_class = PageNumberPagination
|
||||||
http_method_names = ('get',)
|
http_method_names = ('get',)
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
queryset = JuniorTask.objects.filter(guardian__user=self.request.user
|
||||||
|
).prefetch_related('junior', 'junior__auth'
|
||||||
|
).order_by('due_date', 'created_at')
|
||||||
|
|
||||||
|
queryset = self.filter_queryset(queryset)
|
||||||
|
return queryset
|
||||||
|
|
||||||
def list(self, request, *args, **kwargs):
|
def list(self, request, *args, **kwargs):
|
||||||
"""Create guardian profile"""
|
"""Create guardian profile"""
|
||||||
try:
|
status_value = self.request.GET.get('status')
|
||||||
status_value = self.request.GET.get('status')
|
queryset = self.get_queryset()
|
||||||
search = self.request.GET.get('search')
|
if status_value and status_value != '0':
|
||||||
if search and str(status_value) == '0':
|
queryset = queryset.filter(task_status=status_value)
|
||||||
queryset = JuniorTask.objects.filter(guardian__user=request.user,
|
paginator = self.pagination_class()
|
||||||
task_name__icontains=search).order_by('due_date', 'created_at')
|
# use Pagination
|
||||||
elif search and str(status_value) != '0':
|
paginated_queryset = paginator.paginate_queryset(queryset, request)
|
||||||
queryset = JuniorTask.objects.filter(guardian__user=request.user,task_name__icontains=search,
|
# use TaskDetailsSerializer serializer
|
||||||
task_status=status_value).order_by('due_date', 'created_at')
|
serializer = self.serializer_class(paginated_queryset, many=True)
|
||||||
if search is None and str(status_value) == '0':
|
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
||||||
queryset = JuniorTask.objects.filter(guardian__user=request.user).order_by('due_date', 'created_at')
|
|
||||||
elif search is None and str(status_value) != '0':
|
|
||||||
queryset = JuniorTask.objects.filter(guardian__user=request.user,
|
|
||||||
task_status=status_value).order_by('due_date','created_at')
|
|
||||||
paginator = self.pagination_class()
|
|
||||||
# use Pagination
|
|
||||||
paginated_queryset = paginator.paginate_queryset(queryset, request)
|
|
||||||
# use TaskDetailsSerializer serializer
|
|
||||||
serializer = TaskDetailsSerializer(paginated_queryset, many=True)
|
|
||||||
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
|
||||||
except Exception as e:
|
|
||||||
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)
|
|
||||||
|
|
||||||
class CreateTaskAPIView(viewsets.ModelViewSet):
|
class CreateTaskAPIView(viewsets.ModelViewSet):
|
||||||
"""create task for junior"""
|
"""create task for junior"""
|
||||||
|
Reference in New Issue
Block a user