From 4bfcefd701d5ea9e1e7abdb6c497908a190cf044 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 28 Feb 2018 16:32:40 +0300 Subject: [PATCH] migrate update --- progress/views.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/progress/views.py b/progress/views.py index 32d58df..ac2a869 100644 --- a/progress/views.py +++ b/progress/views.py @@ -23,19 +23,25 @@ class StudentWorkView(APIView): @staticmethod def get(request, teacher_token): client_status = request.GET.get('status', 'in_progress') - last_id = request.GET.get('last_id', 0) - server_status = Q(status='fail') if \ - client_status == 'not_done' else Q(status='wait') if client_status == 'in_progress'\ - else Q(status='done') if request.user.is_authenticated() and request.user.groups.filter(name__in=['teachers', 'admin']).exists(): try: - progress_lessons = ProgressLesson.objects.filter( - ~Q(progress__user__out_key=teacher_token), - # ~Q(comment_tokens__len=0), - server_status, - checker__out_key=teacher_token, - id__gt=last_id, - )[last_id:100] + if client_status == 'done': + date_from = datetime.datetime.now() - datetime.timedelta(days=7) + progress_lessons = ProgressLesson.objects.filter( + ~Q(progress__user__out_key=teacher_token), + ~Q(comment_tokens__len=0), + status='done', + checker__out_key=teacher_token, + finish_date__gte=date_from, + ).order_by('-finish_date') + + else: + server_status = Q(status='fail') if client_status == 'not_done' else Q(status='wait') + progress_lessons = ProgressLesson.objects.filter( + ~Q(progress__user__out_key=teacher_token), + server_status, + checker__out_key=teacher_token, + ).order_by('-last_update') return Response([ProgressLessonSerializer(i).data for i in progress_lessons], status=200) except ValidationError: return Response("Bad request", status=400)