@ -7,13 +7,17 @@ from rest_framework.response import Response
from . import ExtendedModelViewSet
from . serializers import (
CategorySerializer , CourseSerializer ,
MaterialSerializer , LikeSerializer ,
ImageSerializer , TextSerializer ,
ImageTextSerializer , VideoSerializer ,
GallerySerializer , GalleryImageSerializer , GalleryImageCreateSerializer ,
CategorySerializer , LikeSerializer ,
CourseSerializer , CourseCreateSerializer ,
MaterialSerializer , MaterialCreateSerializer ,
ImageSerializer , ImageCreateSerializer ,
TextSerializer , TextCreateSerializer ,
ImageTextSerializer , ImageTextCreateSerializer ,
VideoSerializer , VideoCreateSerializer ,
GallerySerializer ,
GalleryImageSerializer , GalleryImageCreateSerializer ,
UserSerializer , UserPhotoSerializer ,
LessonSerializer , CourseRetrieveSerializer ,
LessonSerializer , LessonCreat eSerializer,
ImageObjectSerializer ,
)
from . permissions import IsAdmin , IsAdminOrIsSelf , IsAuthorOrAdmin , IsAuthorObjectOrAdmin
@ -35,7 +39,11 @@ class ImageObjectViewSet(ExtendedModelViewSet):
class MaterialViewSet ( ExtendedModelViewSet ) :
queryset = Material . objects . all ( )
serializer_class = MaterialSerializer
serializer_class = MaterialCreateSerializer
serializer_class_map = {
' list ' : MaterialSerializer ,
' retrieve ' : MaterialSerializer ,
}
search_fields = ( ' title ' , ' short_description ' , )
ordering_fields = ( ' title ' , ' created_at ' , ' update_at ' , )
# permission_classes = (IsAdmin,)
@ -63,10 +71,10 @@ class CourseViewSet(ExtendedModelViewSet):
) . prefetch_related (
' likes ' , ' materials ' , ' content ' ,
) . all ( )
serializer_class = CourseSerializer
serializer_class = CourseCreate Serializer
serializer_class_map = {
' list ' : CourseRetrieve Serializer ,
' retrieve ' : CourseRetrieve Serializer ,
' list ' : CourseSerializer ,
' retrieve ' : CourseSerializer ,
}
filter_fields = ( ' category ' , ' status ' , ' is_infinite ' , ' is_featured ' , )
search_fields = ( ' author__email ' , ' title ' , ' category__title ' , )
@ -82,7 +90,11 @@ class LessonViewSet(ExtendedModelViewSet):
queryset = Lesson . objects . select_related (
' course ' , ' cover '
) . prefetch_related ( ' content ' ) . all ( )
serializer_class = LessonSerializer
serializer_class = LessonCreateSerializer
serializer_class_map = {
' list ' : LessonSerializer ,
' retrieve ' : LessonSerializer ,
}
filter_fields = ( ' course ' , )
search_fields = ( ' title ' , ' short_description ' , )
ordering_fields = ( ' title ' , ' created_at ' , ' update_at ' , )
@ -97,7 +109,11 @@ class ImageViewSet(ExtendedModelViewSet):
queryset = Image . objects . select_related (
' course ' , ' lesson ' , ' img ' ,
) . all ( )
serializer_class = ImageSerializer
serializer_class = ImageCreateSerializer
serializer_class_map = {
' list ' : ImageSerializer ,
' retrieve ' : ImageSerializer ,
}
search_fields = ( ' title ' , )
ordering_fields = ( ' title ' , ' created_at ' , ' update_at ' , ' position ' , )
# permission_classes = (IsAuthorOrAdmin,)
@ -110,7 +126,11 @@ class TextViewSet(ExtendedModelViewSet):
queryset = Text . objects . select_related (
' course ' , ' lesson '
) . all ( )
serializer_class = TextSerializer
serializer_class = TextCreateSerializer
serializer_class_map = {
' list ' : TextSerializer ,
' retrieve ' : TextSerializer ,
}
search_fields = ( ' title ' , )
ordering_fields = ( ' title ' , ' created_at ' , ' update_at ' , ' position ' , )
# permission_classes = (IsAuthorOrAdmin,)
@ -123,7 +143,11 @@ class ImageTextViewSet(ExtendedModelViewSet):
queryset = ImageText . objects . select_related (
' course ' , ' lesson ' , ' img '
) . all ( )
serializer_class = ImageTextSerializer
serializer_class = ImageTextCreateSerializer
serializer_class_map = {
' list ' : ImageTextSerializer ,
' retrieve ' : ImageTextSerializer ,
}
search_fields = ( ' title ' , )
ordering_fields = ( ' title ' , ' created_at ' , ' update_at ' , ' position ' , )
# permission_classes = (IsAuthorOrAdmin,)
@ -136,7 +160,11 @@ class VideoViewSet(ExtendedModelViewSet):
queryset = Video . objects . select_related (
' course ' , ' lesson '
) . all ( )
serializer_class = VideoSerializer
serializer_class = VideoCreateSerializer
serializer_class_map = {
' list ' : VideoSerializer ,
' retrieve ' : VideoSerializer ,
}
search_fields = ( ' title ' , )
ordering_fields = ( ' title ' , ' created_at ' , ' update_at ' , ' position ' , )
# permission_classes = (IsAuthorOrAdmin,)