From 92148fd2c5446f5bec0d9fdb3136e8c5b16fae45 Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 20 Feb 2018 10:10:29 +0300 Subject: [PATCH] migrate update --- courses/api.py | 13 ++++++++----- progress/views.py | 9 +++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/courses/api.py b/courses/api.py index ec5a738..838049c 100644 --- a/courses/api.py +++ b/courses/api.py @@ -36,12 +36,15 @@ class CourseProgressApi: course = Course.objects.get(token=course_token) acc = [] - include_lesson = True - for lesson in course.get_lesson_list(): - if not lesson.token in lesson_list and include_lesson: + include_lesson = False + reversed_list = course.get_lesson_list()[::-1] + for lesson_idx, lesson in enumerate(reversed_list): + prev_idx = lesson_idx - 1 + if include_lesson and not lesson.token in lesson_list: acc.append((lesson.token, lesson.is_hm)) - break - else: + + if lesson.token in lesson_list and not include_lesson: + acc.append((reversed_list[prev_idx].token, reversed_list[prev_idx].is_hm)) include_lesson = True return acc diff --git a/progress/views.py b/progress/views.py index 4d1d62f..9587cce 100644 --- a/progress/views.py +++ b/progress/views.py @@ -11,7 +11,7 @@ from rest_framework.views import APIView from django.db.models import Q from progress.models import ProgressLesson, Progress -from progress.serializers import ProgressAnalyticSerializer, ProgressLessonSerializer +from progress.serializers import ProgressAnalyticSerializer, ProgressLessonSerializer, ProgressSerializer from courses.api import CourseProgressApi from progress.tasks import add_next_lesson @@ -163,9 +163,7 @@ class StudentUpdateProgress(APIView): lesson_token=lesson_token, ) - if not pv.status == ProgressLesson.STATUSES.wait: - if pv.checker == p.teacher: pv.status = ProgressLesson.STATUSES.wait if not comment is None: @@ -186,12 +184,11 @@ class StudentUpdateProgress(APIView): except ProgressLesson.DoesNotExist: return Response('Урок не проходится этим пользователем', status=403) - res = {"current": ProgressLessonSerializer(pv).data} if pv.status == ProgressLesson.STATUSES.done: # TODO: Ассинхроннаязадача для celery - res['next'] = ProgressLessonSerializer(add_next_lesson(p)).data + add_next_lesson(p) - return Response(res, status=200) + return Response(ProgressSerializer(p).data, status=200) except Progress.DoesNotExist: return Response('Не найден прогресс по заданным параметрам', status=404)