diff --git a/courses/serializers.py b/courses/serializers.py index 3309f1e..3dcf85b 100644 --- a/courses/serializers.py +++ b/courses/serializers.py @@ -19,7 +19,7 @@ class MiniLessonSerializer(serializers.ModelSerializer): class Meta: model = Lesson - fields = ('title', 'free', 'token') + fields = ('title', 'free', 'token', 'is_hm') class LessonSerializer(MiniLessonSerializer): diff --git a/progress/migrations/0008_auto_20180227_1803.py b/progress/migrations/0008_auto_20180227_1803.py new file mode 100644 index 0000000..b1cd9b6 --- /dev/null +++ b/progress/migrations/0008_auto_20180227_1803.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.6 on 2018-02-27 18:03 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('progress', '0007_progresslesson_last_update'), + ] + + operations = [ + migrations.RemoveField( + model_name='progress', + name='hidden_lessons', + ), + migrations.AddField( + model_name='progress', + name='only_watch', + field=models.BooleanField(default=False, verbose_name='Только просмотр'), + ), + ] diff --git a/progress/models.py b/progress/models.py index 12a4274..2a6e5dc 100644 --- a/progress/models.py +++ b/progress/models.py @@ -7,16 +7,12 @@ from lms.tools import get_empty_list class Progress(models.Model): - hidden_lessons = ArrayField( - models.UUIDField(verbose_name="Токен урока", unique=True, editable=False), - default=get_empty_list, - verbose_name='Список скрытых уроков', - ) teacher = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name="Преподователь по умолчанию", related_name='teacher_progress') user = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name='Студент') course_token = models.UUIDField(verbose_name="Токен курса", editable=False) is_finish = models.BooleanField(verbose_name="Окончен ли курс", default=False) + only_watch = models.BooleanField(verbose_name="Только просмотр", default=False) def progress_status(self, sorted_token_list): """ diff --git a/progress/serializers.py b/progress/serializers.py index e156bd3..ea27df1 100644 --- a/progress/serializers.py +++ b/progress/serializers.py @@ -8,7 +8,7 @@ class ProgressSerializer(serializers.ModelSerializer): class Meta: model = Progress - fields = ('lessons', 'course_token') + fields = ('lessons', 'course_token', 'only_watch') @staticmethod def get_lessons(self): diff --git a/progress/views.py b/progress/views.py index f744103..40aef45 100644 --- a/progress/views.py +++ b/progress/views.py @@ -23,18 +23,19 @@ class StudentWorkView(APIView): @staticmethod def get(request, teacher_token): client_status = request.GET.get('status', 'in_progress') - client_max_body = 50 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') + 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 - )[:client_max_body] + id__gt=last_id, + )[last_id:50] return Response([ProgressLessonSerializer(i).data for i in progress_lessons], status=200) except ValidationError: return Response("Bad request", status=400)