LIL-704 Починить выпадающий список

remotes/origin/feature/LIL-711
gzbender 7 years ago
parent 801fb416e8
commit d891c7089c
  1. 19
      api/v1/serializers/course.py
  2. 21
      api/v1/views.py
  3. 1
      requirements.txt

@ -1,9 +1,8 @@
from django.contrib.auth import get_user_model
from ipware import get_client_ip from ipware import get_client_ip
from rest_framework import serializers from rest_framework import serializers
from rest_framework.validators import UniqueValidator from rest_framework.validators import UniqueValidator
from drf_dynamic_fields import DynamicFieldsMixin
from django.contrib.auth import get_user_model
from apps.course.models import ( from apps.course.models import (
Category, Course, Category, Course,
@ -13,17 +12,9 @@ from apps.course.models import (
LiveLessonComment) LiveLessonComment)
from .content import ( from .content import (
ImageObjectSerializer, ContentSerializer, ContentCreateSerializer, ImageObjectSerializer, ContentSerializer, ContentCreateSerializer,
GallerySerializer, GalleryImageSerializer, GallerySerializer, )
)
from apps.content.models import (
Content, Image, Text, ImageText, Video,
Gallery, GalleryImage, ImageObject,
ContestWork)
from .user import UserSerializer
from .mixins import DispatchContentMixin, DispatchGalleryMixin, DispatchMaterialMixin from .mixins import DispatchContentMixin, DispatchGalleryMixin, DispatchMaterialMixin
from .user import UserSerializer
User = get_user_model() User = get_user_model()
@ -269,7 +260,7 @@ class LessonSerializer(serializers.ModelSerializer):
) )
class CourseSerializer(serializers.ModelSerializer): class CourseSerializer(DynamicFieldsMixin, serializers.ModelSerializer):
author = UserSerializer() author = UserSerializer()
category = CategorySerializer() category = CategorySerializer()
materials = MaterialSerializer(many=True) materials = MaterialSerializer(many=True)

@ -18,7 +18,7 @@ from .serializers.course import (
MaterialSerializer, MaterialCreateSerializer, MaterialSerializer, MaterialCreateSerializer,
LessonSerializer, LessonCreateSerializer, LessonSerializer, LessonCreateSerializer,
LikeCreateSerializer, CourseCommentSerializer, LessonCommentSerializer, LikeCreateSerializer, CourseCommentSerializer, LessonCommentSerializer,
LiveLessonCommentSerializer) LiveLessonCommentSerializer,)
from .serializers.content import ( from .serializers.content import (
BanerSerializer, BanerSerializer,
ImageSerializer, ImageCreateSerializer, ImageSerializer, ImageCreateSerializer,
@ -36,8 +36,7 @@ from .serializers.school import (
) )
from .serializers.payment import ( from .serializers.payment import (
AuthorBalanceSerializer, AuthorBalanceCreateSerializer, AuthorBalanceSerializer, AuthorBalanceCreateSerializer,
PaymentSerializer, CoursePaymentSerializer, PaymentSerializer,
SchoolPaymentSerializer,
CoursePaymentCreateSerializer, SchoolPaymentCreateSerializer) CoursePaymentCreateSerializer, SchoolPaymentCreateSerializer)
from .serializers.user import ( from .serializers.user import (
AuthorRequestSerializer, AuthorRequestSerializer,
@ -48,7 +47,7 @@ from .serializers.contest import (
) )
from .permissions import ( from .permissions import (
IsAdmin, IsAdminOrIsSelf, IsAdmin,
IsAuthorOrAdmin, IsAuthorObjectOrAdmin, IsAuthorOrAdmin, IsAuthorObjectOrAdmin,
IsTeacherOrAdmin, IsTeacherOrAdmin,
) )
@ -240,6 +239,20 @@ class CourseViewSet(ExtendedModelViewSet):
# 'delete': IsAdmin, # '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']) @list_route(methods=['get'])
def draft(self, request): def draft(self, request):
drafts = Course.objects.filter(author=request.user, status=Course.DRAFT) drafts = Course.objects.filter(author=request.user, status=Course.DRAFT)

@ -33,3 +33,4 @@ django-imagekit
pusher==2.0.1 pusher==2.0.1
short_url short_url
sendgrid sendgrid
drf_dynamic_fields

Loading…
Cancel
Save