From 23290cd612041ff1bb2cc2663a5f7adaa1e9ad56 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 14 Sep 2017 15:09:05 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=B2=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5?= =?UTF-8?q?=D1=81=D1=81=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- courses/new_view.py | 72 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 courses/new_view.py diff --git a/courses/new_view.py b/courses/new_view.py new file mode 100644 index 0000000..b331557 --- /dev/null +++ b/courses/new_view.py @@ -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) \ No newline at end of file From 57c24a71eb8b000eeb14e5fd6c363bb34838ff3b Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 26 Jan 2018 13:11:45 +0300 Subject: [PATCH 2/2] fix --- journals/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/journals/models.py b/journals/models.py index d033516..8292287 100755 --- a/journals/models.py +++ b/journals/models.py @@ -785,7 +785,7 @@ class HomeworkJ(models.Model): elif _type == 'E': obj = ExamJ - j = obj.objects.get_or_create(material=_next, student=self.student) + j, _c = obj.objects.get_or_create(material=_next, student=self.student) if self.success: j.open_material() return {'button': search_in_collection(BUTTON_TYPE,