|
|
|
|
@ -187,51 +187,12 @@ class UpdateProgress(APIView): |
|
|
|
|
if vertex.content_type.model == 'task': |
|
|
|
|
return res_403 |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
next_vertex = vertex.get_next(['task', 'tutorial']) |
|
|
|
|
except ValueError: |
|
|
|
|
next_vertex = None |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
progress = Progress.objects.get(user=request.user, course=vertex.course, active_obj=vertex) |
|
|
|
|
progress.active_obj = next_vertex |
|
|
|
|
|
|
|
|
|
if not next_vertex: |
|
|
|
|
progress.success = True |
|
|
|
|
|
|
|
|
|
if next_vertex.content_type.model == 'task': |
|
|
|
|
""" |
|
|
|
|
создание тредов для приёма домашки |
|
|
|
|
""" |
|
|
|
|
teacher_thread = Thread.objects.get( |
|
|
|
|
key="""user_%s""" % vertex.course.get_teacher().id, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
user_thread = Thread.objects.get( |
|
|
|
|
key="""user_%s""" % request.user.id, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
support_thread = Thread.objects.get( |
|
|
|
|
key="suports", |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
child_thread = Thread.objects.create( |
|
|
|
|
key="""user_%s__vertex_%s""" % (request.user.id, vertex.id,), |
|
|
|
|
text="""Домашняя работа по курсу %s и теме %s для студента %s""" % |
|
|
|
|
(vertex.course.title, vertex.vertex_set.all()[0].title, request.user.get_full_name()), |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
child_thread.subscribers.add(request.user) |
|
|
|
|
child_thread.parent.add(teacher_thread) |
|
|
|
|
child_thread.parent.add(support_thread) |
|
|
|
|
child_thread.parent.add(user_thread) |
|
|
|
|
|
|
|
|
|
progress.save() |
|
|
|
|
return Response({'id': progress.active_obj.id, 'type': progress.active_obj.content_type.model}, status=200) |
|
|
|
|
progress.add_vertex(vertex) |
|
|
|
|
return Response(status=204) |
|
|
|
|
except Progress.DoesNotExist: |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
return Response({'id': next_vertex.id, 'type': next_vertex.content_type.model}, status=200) |
|
|
|
|
return res_403 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserGuardView(APIView): |
|
|
|
|
|