migrate update

feature/fix_generate_pass
Andrey 8 years ago
parent 01b69553b7
commit 92148fd2c5
  1. 13
      courses/api.py
  2. 9
      progress/views.py

@ -36,12 +36,15 @@ class CourseProgressApi:
course = Course.objects.get(token=course_token) course = Course.objects.get(token=course_token)
acc = [] acc = []
include_lesson = True include_lesson = False
for lesson in course.get_lesson_list(): reversed_list = course.get_lesson_list()[::-1]
if not lesson.token in lesson_list and include_lesson: 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)) 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 include_lesson = True
return acc return acc

@ -11,7 +11,7 @@ from rest_framework.views import APIView
from django.db.models import Q from django.db.models import Q
from progress.models import ProgressLesson, Progress 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 courses.api import CourseProgressApi
from progress.tasks import add_next_lesson from progress.tasks import add_next_lesson
@ -163,9 +163,7 @@ class StudentUpdateProgress(APIView):
lesson_token=lesson_token, lesson_token=lesson_token,
) )
if not pv.status == ProgressLesson.STATUSES.wait: if not pv.status == ProgressLesson.STATUSES.wait:
if pv.checker == p.teacher: if pv.checker == p.teacher:
pv.status = ProgressLesson.STATUSES.wait pv.status = ProgressLesson.STATUSES.wait
if not comment is None: if not comment is None:
@ -186,12 +184,11 @@ class StudentUpdateProgress(APIView):
except ProgressLesson.DoesNotExist: except ProgressLesson.DoesNotExist:
return Response('Урок не проходится этим пользователем', status=403) return Response('Урок не проходится этим пользователем', status=403)
res = {"current": ProgressLessonSerializer(pv).data}
if pv.status == ProgressLesson.STATUSES.done: if pv.status == ProgressLesson.STATUSES.done:
# TODO: Ассинхроннаязадача для celery # 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: except Progress.DoesNotExist:
return Response('Не найден прогресс по заданным параметрам', status=404) return Response('Не найден прогресс по заданным параметрам', status=404)

Loading…
Cancel
Save