Выставляется препод к курсу

remotes/origin/file_upload
Andrey 8 years ago
parent 729bc81d87
commit 5180d7ea3d
  1. 9
      courses/models.py
  2. 31
      courses/views.py

@ -25,6 +25,10 @@ COURSE_DIRECTION = (
) )
def content_file_name(instance, filename):
return '/'.join(['course', instance.topic.course.token, instance.topic.id, instance.token, filename])
class Lesson(models.Model): class Lesson(models.Model):
token = models.UUIDField(verbose_name="Токен", default=uuid.uuid4, editable=False) token = models.UUIDField(verbose_name="Токен", default=uuid.uuid4, editable=False)
key = models.UUIDField( key = models.UUIDField(
@ -33,6 +37,11 @@ class Lesson(models.Model):
title = models.CharField(verbose_name='Название', max_length=255) title = models.CharField(verbose_name='Название', max_length=255)
description = models.TextField(verbose_name='Описание', blank=True, null=True) description = models.TextField(verbose_name='Описание', blank=True, null=True)
video = models.TextField(verbose_name='Код видео', blank=True, null=True) video = models.TextField(verbose_name='Код видео', blank=True, null=True)
materials = ArrayField(
models.FileField(verbose_name="Материал к уроку", upload_to=content_file_name),
verbose_name="Материалы к уроку",
default=get_empty_list,
)
material_tokens = ArrayField( material_tokens = ArrayField(
models.UUIDField(verbose_name="Токен материала", editable=False), models.UUIDField(verbose_name="Токен материала", editable=False),
default=get_empty_list, default=get_empty_list,

@ -1,7 +1,8 @@
from jwt import DecodeError from jwt import DecodeError
from rest_framework.parsers import MultiPartParser
from courses.models import Course, Lesson, Topic from courses.models import Course, Lesson, Topic
from rest_framework.renderers import JSONRenderer from rest_framework.renderers import JSONRenderer, BrowsableAPIRenderer
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.views import APIView from rest_framework.views import APIView
@ -87,18 +88,26 @@ class DeleteLessonView(APIView):
class UpdateLessonView(APIView): class UpdateLessonView(APIView):
renderer_classes = (JSONRenderer,) renderer_classes = (JSONRenderer, BrowsableAPIRenderer)
parser_classes = (MultiPartParser,)
@staticmethod @staticmethod
def post(request): def bool_transformer(val):
lesson_token = request.JSON.get('token', None) if val == 'false':
sort = request.JSON.get('sort', None) return False
topic_id = request.JSON.get('topic', None) if val == 'true':
title = request.JSON.get('title', None) return True
description = request.JSON.get('description', None) return val
video = request.JSON.get('video', None)
free = request.JSON.get('free', None) def post(self, request):
is_hm = request.JSON.get('is_hm', None) lesson_token = request.POST.get('token', None)
sort = request.POST.get('sort', None)
topic_id = request.POST.get('topic', None)
title = request.POST.get('title', None)
description = request.POST.get('description', None)
video = request.POST.get('video', None)
free = self.bool_transformer(request.POST.get('free', None))
is_hm = self.bool_transformer(request.POST.get('is_hm', None))
if topic_id is None: if topic_id is None:
return Response("topic не передан", status=400) return Response("topic не передан", status=400)

Loading…
Cancel
Save