|
|
|
|
@ -1,5 +1,6 @@ |
|
|
|
|
from django.contrib.auth import get_user_model |
|
|
|
|
from django.contrib.contenttypes.models import ContentType |
|
|
|
|
from rest_framework.permissions import IsAuthenticated |
|
|
|
|
from rest_framework.views import APIView |
|
|
|
|
from rest_framework.renderers import JSONRenderer |
|
|
|
|
from rest_framework.response import Response |
|
|
|
|
@ -9,6 +10,7 @@ from django.http import HttpResponse, HttpResponseForbidden |
|
|
|
|
from access.models.other import Progress |
|
|
|
|
from journals.models import Thread, Journal |
|
|
|
|
from journals.serilizers import ThreadDetailSerializer, ThreadAdminSerializer, JournalSerializer |
|
|
|
|
from lms.global_decorators import transaction_decorator |
|
|
|
|
from lms.tools import decode_base64 |
|
|
|
|
from storage.models import Storage |
|
|
|
|
|
|
|
|
|
@ -26,6 +28,7 @@ class ThreadAdminListView(APIView): |
|
|
|
|
|
|
|
|
|
class ThreadDetailView(APIView): |
|
|
|
|
renderer_classes = (JSONRenderer,) |
|
|
|
|
permission_classes = () |
|
|
|
|
status_code = 200 |
|
|
|
|
|
|
|
|
|
def post(self, request, key): |
|
|
|
|
@ -89,8 +92,10 @@ def get_pay_stat(request, pk): |
|
|
|
|
|
|
|
|
|
class JournalCreateView(APIView): |
|
|
|
|
renderer_classes = (JSONRenderer,) |
|
|
|
|
permission_classes = (IsAuthenticated,) |
|
|
|
|
status_code = 200 |
|
|
|
|
|
|
|
|
|
@transaction_decorator |
|
|
|
|
def post(self, request): |
|
|
|
|
pk = request.JSON.get('thread_id', None) |
|
|
|
|
try: |
|
|
|
|
@ -116,12 +121,11 @@ class JournalCreateView(APIView): |
|
|
|
|
s = Storage.objects.create(original=decode_base64(i['data']), name=i['name']) |
|
|
|
|
journal.files.add(s) |
|
|
|
|
|
|
|
|
|
if journal.action_type == 'yes': |
|
|
|
|
if action_type == 'yes': |
|
|
|
|
p = Progress.objects.get(course=journal.content_object.course, user=journal.thread.subscribers.all()[0]) |
|
|
|
|
p.active_obj = journal.content_object.get_next(['tutorial', 'task']) |
|
|
|
|
p.save() |
|
|
|
|
p.add_vertex(journal.content_object) |
|
|
|
|
|
|
|
|
|
return Response(ThreadDetailSerializer(thread).data, status=200) |
|
|
|
|
return Response(JournalSerializer(journal).data, status=200) |
|
|
|
|
return Response("permission denied", status=403) |
|
|
|
|
except Thread.DoesNotExist: |
|
|
|
|
return Response("Thread doesn't exist.", self.status_code,) |
|
|
|
|
|