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