From 24adcd29277ee5ad050f3be9292073f59b5821e5 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 7 Sep 2017 15:03:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D1=81?= =?UTF-8?q?=D1=81=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- access/middleware.py | 1 - courses/new_urls.py | 1 + courses/new_view.py | 13 +++++++++++-- courses/serializers.py | 10 ++++++++-- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/access/middleware.py b/access/middleware.py index c29b245..d749b62 100644 --- a/access/middleware.py +++ b/access/middleware.py @@ -9,7 +9,6 @@ class CheckPerm(object): def process_request(request): if len(request.path) > 6 and \ ('/admin' == request.path[:6] - or "/manag" == request.path[:6] or'/analy' == request.path[:6]): #or "/api/v" == request.path[:6]): diff --git a/courses/new_urls.py b/courses/new_urls.py index 86ec6b2..f531528 100644 --- a/courses/new_urls.py +++ b/courses/new_urls.py @@ -3,6 +3,7 @@ from courses import new_view as views urlpatterns = [ url(r'theme/detail/([0-9]{1,99})/$', views.ThemeDetailView.as_view()), + url(r'lesson/detail/([0-9]{1,99})/$', views.LessonDetailView.as_view()), url(r'detail/([0-9]{1,99})/$', views.CourseDetailView.as_view()), url(r'tree/([0-9]{1,99})/$', views.TreeView.as_view()), url(r'directions/$', views.DirectionListView.as_view()), diff --git a/courses/new_view.py b/courses/new_view.py index fd92c5f..eaa4139 100644 --- a/courses/new_view.py +++ b/courses/new_view.py @@ -1,8 +1,9 @@ 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 +from courses.models import Course, MaterialDirection, CourseTheme, Lesson +from courses.serializers import CourseTreeSerializer, CourseDetailSerializer, CourseListSerializer,\ + ThemeSerializer, LessonSerializer class DirectionListView(APIView): @@ -34,6 +35,14 @@ class ThemeDetailView(APIView): 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 diff --git a/courses/serializers.py b/courses/serializers.py index 284139c..c382bae 100644 --- a/courses/serializers.py +++ b/courses/serializers.py @@ -7,10 +7,15 @@ from courses.models import Course, CourseTheme, Lesson, Homework, Exam class LessonSerializer(serializers.ModelSerializer): + on_comment = serializers.SerializerMethodField() class Meta: model = Lesson - fields = '__all__' + fields = ('id', 'title', 'on_comment', 'free') + + @staticmethod + def get_on_comment(self): + return self.on_comment == 'N' or self.on_comment == 'T' and self.theme.on_comment class HomeworkSerializer(serializers.ModelSerializer): @@ -99,7 +104,8 @@ class CourseDetailSerializer(serializers.ModelSerializer): 'slug', 'mentors', 'page', 'sort', 'preview', 'use_fail', 'basic_len', 'addition_len', 'min_price', 'buy_icon', - 'must_build', 'keywords', 'recommend' + 'must_build', 'keywords', 'recommend', + 'on_comment' ) @staticmethod