You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

46 lines
1.6 KiB

import datetime
from django.shortcuts import render
# Create your views here.
from rest_framework.renderers import JSONRenderer
from rest_framework.response import Response
from rest_framework.views import APIView
from .models import Progress, PivotProgressVertex
from .serializers import PivotProgressSerializer
class UpdateProgress(APIView):
renderer_classes = (JSONRenderer,)
@staticmethod
def post(request):
"""
На вход обязательно передаётся параметр id (id узла).
"""
token = request.JSON.get('token', None)
course = request.JSON.get('slug', None)
if token is None or course is None:
return Response('Не передан слаг курса или токен урока', status=400)
try:
p = Progress.objects.get(user=request.user, course=course)
try:
pv = PivotProgressVertex.objects.get(
progress=p,
vertex=token,
)
except PivotProgressVertex.DoesNotExist:
pv = PivotProgressVertex.objects.create(
date=datetime.datetime.now(),
teacher=p.teacher,
progress=p,
vertex=token,
)
pv.status = 2
pv.save()
return Response(PivotProgressSerializer(pv).data, status=200)
except Progress.DoesNotExist:
return Response('Не найден прогресс по заданным параметрам', status=404)