Merge branch 'dev' into 'master'

Dev

See merge request !95
master
Andrey 8 years ago
commit d3a97cbf16
  1. 2
      courses/serializers.py
  2. 24
      progress/migrations/0008_auto_20180227_1803.py
  3. 6
      progress/models.py
  4. 2
      progress/serializers.py
  5. 9
      progress/views.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):

@ -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='Только просмотр'),
),
]

@ -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):
"""

@ -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):

@ -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)

Loading…
Cancel
Save