From 0f3027df6e29606bfc53a14eaf7b90a18db1bac1 Mon Sep 17 00:00:00 2001 From: Ivlev Denis Date: Wed, 14 Feb 2018 17:10:02 +0300 Subject: [PATCH] Add course last draft retrieve endpoint --- api/v1/views.py | 8 ++++++++ apps/course/views.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/api/v1/views.py b/api/v1/views.py index 043c0fb8..16a0fc6f 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -81,6 +81,7 @@ class CourseViewSet(ExtendedModelViewSet): serializer_class_map = { 'list': CourseSerializer, 'retrieve': CourseSerializer, + 'draft': CourseSerializer, } filter_fields = ('category', 'status', 'is_infinite', 'is_featured',) search_fields = ('author__email', 'title', 'category__title',) @@ -91,6 +92,13 @@ class CourseViewSet(ExtendedModelViewSet): # 'delete': IsAdmin, # } + @list_route(methods=['get']) + def draft(self, request): + drafts = Course.objects.filter(author=request.user, status=Course.DRAFT) + serializer = self.get_serializer_class() + serialized_data = serializer(instance=drafts.last()) + return Response(serialized_data.data) + class LessonViewSet(ExtendedModelViewSet): queryset = Lesson.objects.select_related( diff --git a/apps/course/views.py b/apps/course/views.py index 75ff396a..dce54105 100644 --- a/apps/course/views.py +++ b/apps/course/views.py @@ -152,7 +152,7 @@ class CourseEditView(TemplateView): elif drafts.exists(): self.object = drafts.last() else: - self.object = None + self.object = Course.objects.create() return super().get(request) def get_context_data(self):