|
|
|
|
@ -18,7 +18,7 @@ from .serializers.course import ( |
|
|
|
|
MaterialSerializer, MaterialCreateSerializer, |
|
|
|
|
LessonSerializer, LessonCreateSerializer, |
|
|
|
|
LikeCreateSerializer, CourseCommentSerializer, LessonCommentSerializer, |
|
|
|
|
LiveLessonCommentSerializer) |
|
|
|
|
LiveLessonCommentSerializer,) |
|
|
|
|
from .serializers.content import ( |
|
|
|
|
BanerSerializer, |
|
|
|
|
ImageSerializer, ImageCreateSerializer, |
|
|
|
|
@ -36,8 +36,7 @@ from .serializers.school import ( |
|
|
|
|
) |
|
|
|
|
from .serializers.payment import ( |
|
|
|
|
AuthorBalanceSerializer, AuthorBalanceCreateSerializer, |
|
|
|
|
PaymentSerializer, CoursePaymentSerializer, |
|
|
|
|
SchoolPaymentSerializer, |
|
|
|
|
PaymentSerializer, |
|
|
|
|
CoursePaymentCreateSerializer, SchoolPaymentCreateSerializer) |
|
|
|
|
from .serializers.user import ( |
|
|
|
|
AuthorRequestSerializer, |
|
|
|
|
@ -48,7 +47,7 @@ from .serializers.contest import ( |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
from .permissions import ( |
|
|
|
|
IsAdmin, IsAdminOrIsSelf, |
|
|
|
|
IsAdmin, |
|
|
|
|
IsAuthorOrAdmin, IsAuthorObjectOrAdmin, |
|
|
|
|
IsTeacherOrAdmin, |
|
|
|
|
) |
|
|
|
|
@ -240,6 +239,20 @@ class CourseViewSet(ExtendedModelViewSet): |
|
|
|
|
# 'delete': IsAdmin, |
|
|
|
|
# } |
|
|
|
|
|
|
|
|
|
def list(self, request, *args, **kwargs): |
|
|
|
|
queryset = self.filter_queryset(self.get_queryset()) |
|
|
|
|
|
|
|
|
|
if request.query_params.get('page'): |
|
|
|
|
page = self.paginate_queryset(queryset) |
|
|
|
|
if page is not None: |
|
|
|
|
serializer = self.get_serializer(page, many=True) |
|
|
|
|
return self.get_paginated_response(serializer.data) |
|
|
|
|
else: |
|
|
|
|
return Response({'results': []}) |
|
|
|
|
|
|
|
|
|
serializer = self.get_serializer(queryset, many=True) |
|
|
|
|
return Response(serializer.data) |
|
|
|
|
|
|
|
|
|
@list_route(methods=['get']) |
|
|
|
|
def draft(self, request): |
|
|
|
|
drafts = Course.objects.filter(author=request.user, status=Course.DRAFT) |
|
|
|
|
|