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.
50 lines
1.5 KiB
50 lines
1.5 KiB
from rest_framework.views import APIView
|
|
from rest_framework.renderers import JSONRenderer
|
|
from rest_framework.response import Response
|
|
from courses.models import Course, MaterialDirection, CourseTheme
|
|
from courses.serializers import CourseTreeSerializer, CourseDetailSerializer, CourseListSerializer, ThemeSerializer
|
|
|
|
|
|
class DirectionListView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
status_code = 200
|
|
|
|
def get(self, request):
|
|
return Response([direction.title for direction in MaterialDirection.objects.all()], self.status_code)
|
|
|
|
|
|
class TreeView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
status_code = 200
|
|
|
|
@staticmethod
|
|
def post(request):
|
|
print(request)
|
|
return Response(status=204)
|
|
|
|
def get(self, request, id):
|
|
return Response(CourseTreeSerializer(Course.objects.get(id=id)).data, self.status_code)
|
|
|
|
|
|
class ThemeDetailView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
status_code = 200
|
|
|
|
def get(self, request, id):
|
|
return Response(ThemeSerializer(CourseTheme.objects.get(id=id)).data, self.status_code)
|
|
|
|
|
|
class CourseDetailView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
status_code = 200
|
|
|
|
def get(self, request, id):
|
|
return Response(CourseDetailSerializer(Course.objects.get(id=id)).data, self.status_code)
|
|
|
|
|
|
class CourseListView(APIView):
|
|
renderer_classes = (JSONRenderer,)
|
|
status_code = 200
|
|
|
|
def get(self, request):
|
|
return Response([CourseListSerializer(i).data for i in Course.objects.all()], self.status_code) |