parent
cd5eb4efb1
commit
23290cd612
1 changed files with 72 additions and 0 deletions
@ -0,0 +1,72 @@ |
||||
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, Lesson |
||||
from courses.serializers import CourseTreeSerializer, CourseDetailSerializer, CourseListSerializer,\ |
||||
ThemeSerializer, LessonSerializer |
||||
from finance.models import Bill |
||||
|
||||
|
||||
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 LessonDetailView(APIView): |
||||
renderer_classes = (JSONRenderer,) |
||||
status_code = 200 |
||||
|
||||
def get(self, request, id): |
||||
return Response(LessonSerializer(Lesson.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): |
||||
if not request.GET.get('staff', 'true') == 'false': |
||||
return Response([CourseListSerializer(i).data for i in Course.objects.all()], self.status_code) |
||||
|
||||
res = [] |
||||
for course in Course.objects.all(): |
||||
if course.public: |
||||
course_serialize = CourseListSerializer(course).data |
||||
course_serialize['is_mine'] = False |
||||
if request.user.is_authenticated() and Bill.objects.filter(service__course=course, user=request.user, status='F').exists(): |
||||
course_serialize['is_mine'] = True |
||||
res.append(course_serialize) |
||||
|
||||
return Response(res, self.status_code) |
||||
Loading…
Reference in new issue