|
|
|
|
@ -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( |
|
|
|
|
|