diff --git a/api/v1/views.py b/api/v1/views.py index 7ecb780d..24e69893 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -60,7 +60,7 @@ class CategoryViewSet(ExtendedModelViewSet): class CourseViewSet(ExtendedModelViewSet): queryset = Course.objects.select_related( - 'author', 'category' + 'author', 'category', 'cover', ).prefetch_related( 'likes', 'materials', 'content', ).all() @@ -68,7 +68,6 @@ class CourseViewSet(ExtendedModelViewSet): serializer_class_map = { 'list': CourseRetrieveSerializer, 'retrieve': CourseRetrieveSerializer, - 'upload_photo': CoverImageSerializer, } filter_fields = ('category', 'status', 'is_infinite', 'is_featured',) search_fields = ('author__email', 'title', 'category__title',) @@ -79,25 +78,12 @@ class CourseViewSet(ExtendedModelViewSet): # 'delete': IsAdmin, # } - @detail_route(methods=['post'], url_path='upload-photo') - def upload_photo(self, request, pk=None): - course = self.get_object() - serializer = self.get_serializer() - serialized_data = serializer(data=request.data) - if serialized_data.is_valid(): - course.cover = serialized_data['cover'] - course.save() - return Response({'success': True}) - else: - return Response({'success': False}, status=status.HTTP_400_BAD_REQUEST) - class LessonViewSet(ExtendedModelViewSet): - queryset = Lesson.objects.select_related('course').all() + queryset = Lesson.objects.select_related( + 'course', 'cover' + ).prefetch_related('content').all() serializer_class = LessonSerializer - serializer_class_map = { - 'upload_photo': CoverImageSerializer, - } filter_fields = ('course',) search_fields = ('title', 'short_description',) ordering_fields = ('title', 'created_at', 'update_at',) @@ -107,27 +93,12 @@ class LessonViewSet(ExtendedModelViewSet): # 'delete': IsAdmin, # } - @detail_route(methods=['post'], url_path='upload-photo') - def upload_photo(self, request, pk=None): - lesson = self.get_object() - serializer = self.get_serializer() - serialized_data = serializer(data=request.data) - if serialized_data.is_valid(): - lesson.cover = serialized_data['cover'] - lesson.save() - return Response({'success': True}) - else: - return Response({'success': False}, status=status.HTTP_400_BAD_REQUEST) - class ImageViewSet(ExtendedModelViewSet): queryset = Image.objects.select_related( - 'course', 'lesson' + 'course', 'lesson', 'img', ).all() serializer_class = ImageSerializer - serializer_class_map = { - 'upload_photo': ContentImageSerializer, - } search_fields = ('title',) ordering_fields = ('title', 'created_at', 'update_at', 'position',) # permission_classes = (IsAuthorOrAdmin,) @@ -135,18 +106,6 @@ class ImageViewSet(ExtendedModelViewSet): # 'delete': IsAdmin, # } - @detail_route(methods=['post'], url_path='upload-photo') - def upload_photo(self, request, pk=None): - image = self.get_object() - serializer = self.get_serializer() - serialized_data = serializer(data=request.data) - if serialized_data.is_valid(): - image.img = serialized_data['img'] - image.save() - return Response({'success': True}) - else: - return Response({'success': False}, status=status.HTTP_400_BAD_REQUEST) - class TextViewSet(ExtendedModelViewSet): queryset = Text.objects.select_related( @@ -163,12 +122,9 @@ class TextViewSet(ExtendedModelViewSet): class ImageTextViewSet(ExtendedModelViewSet): queryset = ImageText.objects.select_related( - 'course', 'lesson' + 'course', 'lesson', 'img' ).all() serializer_class = ImageTextSerializer - serializer_class_map = { - 'upload_photo': ContentImageSerializer, - } search_fields = ('title',) ordering_fields = ('title', 'created_at', 'update_at', 'position',) # permission_classes = (IsAuthorOrAdmin,) @@ -176,18 +132,6 @@ class ImageTextViewSet(ExtendedModelViewSet): # 'delete': IsAdmin, # } - @detail_route(methods=['post'], url_path='upload-photo') - def upload_photo(self, request, pk=None): - image_text = self.get_object() - serializer = self.get_serializer() - serialized_data = serializer(data=request.data) - if serialized_data.is_valid(): - image_text.img = serialized_data['img'] - image_text.save() - return Response({'success': True}) - else: - return Response({'success': False}, status=status.HTTP_400_BAD_REQUEST) - class VideoViewSet(ExtendedModelViewSet): queryset = Video.objects.select_related( @@ -214,29 +158,16 @@ class GalleryViewSet(ExtendedModelViewSet): class GalleryImageViewSet(ExtendedModelViewSet): - queryset = GalleryImage.objects.select_related('gallery').all() + queryset = GalleryImage.objects.select_related( + 'gallery', 'img', + ).all() serializer_class = GalleryImageSerializer - serializer_class_map = { - 'upload_photo': GalleryImageSerializer, - } search_fields = ('gallery__title',) # permission_classes = (IsAuthorOrAdmin,) # permission_map = { # 'delete': IsAdmin, # } - @detail_route(methods=['post'], url_path='upload-photo') - def upload_photo(self, request, pk=None): - gallery_image = self.get_object() - serializer = self.get_serializer() - serialized_data = serializer(data=request.data) - if serialized_data.is_valid(): - gallery_image.image = serialized_data['image'] - gallery_image.save() - return Response({'success': True}) - else: - return Response({'success': False}, status=status.HTTP_400_BAD_REQUEST) - class UserViewSet(ExtendedModelViewSet): queryset = User.objects.all()