diff --git a/account/serializers.py b/account/serializers.py index 11944e6..4df4e89 100644 --- a/account/serializers.py +++ b/account/serializers.py @@ -225,7 +225,7 @@ class JuniorSerializer(serializers.ModelSerializer): return access_token def get_refresh_token(self, obj): - refresh = RefreshToken.for_user(obj.user) + refresh = RefreshToken.for_user(obj.auth) refresh_token = str(refresh) return refresh_token diff --git a/junior/urls.py b/junior/urls.py index ecedb1a..33d52e7 100644 --- a/junior/urls.py +++ b/junior/urls.py @@ -2,7 +2,7 @@ """Django import""" from django.urls import path, include from .views import (UpdateJuniorProfile, ValidateGuardianCode, JuniorListAPIView, AddJuniorAPIView, - InvitedJuniorAPIView, FilterJuniorAPIView, RemoveJuniorAPIView) + InvitedJuniorAPIView, FilterJuniorAPIView, RemoveJuniorAPIView, JuniorTaskListAPIView) """Third party import""" from rest_framework import routers @@ -17,7 +17,8 @@ router = routers.SimpleRouter() # junior list, # add junior list, invited junior, # filter-junior, -# remove junior""" +# remove junior, +# junior task list """API End points with router""" router.register('create-junior-profile', UpdateJuniorProfile, basename='profile-update') # validate guardian code API""" @@ -30,6 +31,8 @@ router.register('add-junior', AddJuniorAPIView, basename='add-junior') router.register('invited-junior', InvitedJuniorAPIView, basename='invited-junior') # Filter junior list API""" router.register('filter-junior', FilterJuniorAPIView, basename='filter-junior') +# junior's task list API""" +router.register('junior-task-list', JuniorTaskListAPIView, basename='junior-task-list') # Define url pattern""" urlpatterns = [ path('api/v1/', include(router.urls)), diff --git a/junior/views.py b/junior/views.py index d77727b..0e1de75 100644 --- a/junior/views.py +++ b/junior/views.py @@ -18,7 +18,8 @@ from rest_framework.pagination import PageNumberPagination from junior.models import Junior from .serializers import (CreateJuniorSerializer, JuniorDetailListSerializer, AddJuniorSerializer,\ RemoveJuniorSerializer) -from guardian.models import Guardian +from guardian.models import Guardian, JuniorTask +from guardian.serializers import TaskDetailsSerializer from base.messages import ERROR_CODE, SUCCESS_CODE from base.constants import NUMBER from account.utils import custom_response, custom_error_response @@ -184,3 +185,26 @@ class RemoveJuniorAPIView(views.APIView): 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) + + +class JuniorTaskListAPIView(viewsets.ModelViewSet): + """Update guardian profile""" + serializer_class = TaskDetailsSerializer + permission_classes = [IsAuthenticated] + pagination_class = PageNumberPagination + queryset = JuniorTask.objects.all() + + def list(self, request, *args, **kwargs): + """Create guardian profile""" + status_value = self.request.GET.get('status') + if str(status_value) == '0': + queryset = JuniorTask.objects.filter(junior__auth=request.user).order_by('due_date', 'created_at') + else: + queryset = JuniorTask.objects.filter(junior__auth=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)