|
|
|
@ -4,18 +4,26 @@ from rest_framework.permissions import IsAuthenticated, IsAdminUser |
|
|
|
from rest_framework.authentication import TokenAuthentication |
|
|
|
from apps.course.models import ( |
|
|
|
Course, |
|
|
|
CourseCategory, |
|
|
|
CourseChapter, |
|
|
|
CourseLesson, |
|
|
|
Lesson, |
|
|
|
CourseAttachment, |
|
|
|
CourseGlossary |
|
|
|
Attachment, |
|
|
|
CourseGlossary, |
|
|
|
Glossary |
|
|
|
) |
|
|
|
from apps.course.serializers.admin import ( |
|
|
|
AdminCourseCategorySerializer, |
|
|
|
AdminCourseListSerializer, |
|
|
|
AdminCourseDetailSerializer, |
|
|
|
AdminCourseChapterSerializer, |
|
|
|
AdminCourseLessonSerializer, |
|
|
|
AdminCourseAttachmentSerializer, |
|
|
|
AdminCourseGlossarySerializer |
|
|
|
AdminCourseGlossarySerializer, |
|
|
|
AdminLessonSerializer, |
|
|
|
AdminGlossarySerializer, |
|
|
|
AdminAttachmentSerializer |
|
|
|
) |
|
|
|
|
|
|
|
class AdminCourseViewSet(viewsets.ModelViewSet): |
|
|
|
@ -158,3 +166,73 @@ class AdminCourseGlossaryViewSet(viewsets.ModelViewSet): |
|
|
|
instance.delete() |
|
|
|
if glossary: |
|
|
|
glossary.delete() |
|
|
|
|
|
|
|
|
|
|
|
class AdminCourseCategoryViewSet(viewsets.ModelViewSet): |
|
|
|
""" |
|
|
|
Admin CRUD ViewSet for Course Categories. |
|
|
|
""" |
|
|
|
permission_classes = [IsAuthenticated, IsAdminUser] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
serializer_class = AdminCourseCategorySerializer |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = CourseCategory.objects.all().order_by('-id') |
|
|
|
search = self.request.query_params.get('search', None) |
|
|
|
if search: |
|
|
|
queryset = queryset.filter(Q(name__icontains=search) | Q(slug__icontains=search)) |
|
|
|
return queryset |
|
|
|
|
|
|
|
|
|
|
|
class AdminLessonViewSet(viewsets.ModelViewSet): |
|
|
|
""" |
|
|
|
Admin CRUD ViewSet for base Lesson. |
|
|
|
""" |
|
|
|
permission_classes = [IsAuthenticated, IsAdminUser] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
serializer_class = AdminLessonSerializer |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = Lesson.objects.all().order_by('-id') |
|
|
|
search = self.request.query_params.get('search', None) |
|
|
|
if search: |
|
|
|
queryset = queryset.filter(title__icontains=search) |
|
|
|
|
|
|
|
content_type = self.request.query_params.get('content_type', None) |
|
|
|
if content_type: |
|
|
|
queryset = queryset.filter(content_type=content_type) |
|
|
|
|
|
|
|
return queryset |
|
|
|
|
|
|
|
|
|
|
|
class AdminGlossaryViewSet(viewsets.ModelViewSet): |
|
|
|
""" |
|
|
|
Admin CRUD ViewSet for base Glossary. |
|
|
|
""" |
|
|
|
permission_classes = [IsAuthenticated, IsAdminUser] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
serializer_class = AdminGlossarySerializer |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = Glossary.objects.all().order_by('-id') |
|
|
|
search = self.request.query_params.get('search', None) |
|
|
|
if search: |
|
|
|
queryset = queryset.filter(Q(title__icontains=search) | Q(description__icontains=search)) |
|
|
|
return queryset |
|
|
|
|
|
|
|
|
|
|
|
class AdminAttachmentViewSet(viewsets.ModelViewSet): |
|
|
|
""" |
|
|
|
Admin CRUD ViewSet for base Attachment. |
|
|
|
""" |
|
|
|
permission_classes = [IsAuthenticated, IsAdminUser] |
|
|
|
authentication_classes = [TokenAuthentication] |
|
|
|
serializer_class = AdminAttachmentSerializer |
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
queryset = Attachment.objects.all().order_by('-id') |
|
|
|
search = self.request.query_params.get('search', None) |
|
|
|
if search: |
|
|
|
queryset = queryset.filter(title__icontains=search) |
|
|
|
return queryset |
|
|
|
|