You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.1 KiB
34 lines
1.1 KiB
from rest_framework.generics import ListAPIView, RetrieveAPIView
|
|
|
|
from drf_yasg.utils import swagger_auto_schema
|
|
from drf_yasg import openapi
|
|
from django.shortcuts import get_object_or_404
|
|
from rest_framework import status
|
|
|
|
from apps.course.serializers import (
|
|
LessonSerializer
|
|
)
|
|
from apps.course.models import Course, Lesson
|
|
from apps.course.doc import *
|
|
from utils.exceptions import AppAPIException
|
|
|
|
|
|
|
|
class LessonListView(ListAPIView):
|
|
serializer_class = LessonSerializer
|
|
queryset = Lesson.objects.filter(is_active=True)
|
|
|
|
@swagger_auto_schema(
|
|
operation_description=doc_courses_lesson(),
|
|
)
|
|
def get(self, request, *args, **kwargs):
|
|
return super().get(request, *args, **kwargs)
|
|
|
|
def get_queryset(self):
|
|
course_slug = self.kwargs.get('slug')
|
|
course = get_object_or_404(Course, )
|
|
course = Course.objects.filter(slug=course_slug).first()
|
|
if not course:
|
|
raise AppAPIException({"message": "course not found"}, status_code=status.HTTP_404_NOT_FOUND)
|
|
|
|
return self.queryset.filter(course=course).order_by('priority','id')
|