remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent e53dfae45c
commit 4eaeea9243
  1. 12
      api/v1/serializers/content.py
  2. 27
      api/v1/serializers/course.py

@ -18,6 +18,18 @@ class ContentCreateSerializer(serializers.Serializer):
type = serializers.ChoiceField(choices=TYPE_CHOICES)
data = serializers.JSONField()
def to_representation(self, obj):
print(obj)
if isinstance(obj, Image):
return ImageSerializer(obj, context=self.context).to_representation(obj)
elif isinstance(obj, Text):
return TextSerializer(obj, context=self.context).to_representation(obj)
elif isinstance(obj, ImageText):
return ImageTextSerializer(obj, context=self.context).to_representation(obj)
elif isinstance(obj, Video):
return VideoSerializer(obj, context=self.context).to_representation(obj)
return super(ContentSerializer, self).to_representation(obj)
class ImageObjectSerializer(serializers.ModelSerializer):
image = Base64ImageField(

@ -7,6 +7,11 @@ from .content import (
GallerySerializer, GalleryImageSerializer,
)
from apps.content.models import (
Content, Image, Text, ImageText, Video,
Gallery, GalleryImage, ImageObject,
)
class MaterialCreateSerializer(serializers.ModelSerializer):
@ -29,7 +34,7 @@ class MaterialCreateSerializer(serializers.ModelSerializer):
class MaterialSerializer(MaterialCreateSerializer):
cover = ImageObjectSerializer()
cover = ImageObjectSerializer(allow_null=True)
class LikeSerializer(serializers.ModelSerializer):
@ -130,14 +135,14 @@ class CourseCreateSerializer(serializers.ModelSerializer):
i.position = c['data']['position']
i.title = c['data']['title']
i.course = course
i.img = Image.objects.get(c['data']['img'])
i.img = ImageObject.objects.get(id=c['data']['img']['id'])
i.save()
else:
i = Image.objects.create(
position=c['data']['position'],
title=c['data']['title'],
course=course,
img=Image.objects.get(c['data']['img']),
img=Image.objects.get(id=c['data']['img']['id']),
)
elif c['type'] == 'image-text':
if 'id' in c['data']:
@ -145,7 +150,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
it.position = c['data']['position']
it.title = c['data']['title']
it.course = course
it.img = Image.objects.get(c['data']['img'])
it.img = ImageObject.objects.get(id=c['data']['img']['id'])
it.txt = c['data']['txt']
it.save()
else:
@ -153,7 +158,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
position=c['data']['position'],
title=c['data']['title'],
course=course,
img=Image.objects.get(c['data']['img']),
img=Image.objects.get(id=c['data']['img']['id']),
txt=c['data']['txt'],
)
elif c['type'] == 'video':
@ -187,8 +192,8 @@ class CourseCreateSerializer(serializers.ModelSerializer):
return course
def update(self, instance, validated_data):
materials = validated_data.pop('materials')
content = validated_data.pop('content')
materials = validated_data.pop('materials', [])
content = validated_data.pop('content', [])
course = super().update(instance, validated_data)
@ -214,14 +219,14 @@ class CourseCreateSerializer(serializers.ModelSerializer):
i.position = c['data']['position']
i.title = c['data']['title']
i.course = course
i.img = Image.objects.get(c['data']['img'])
i.img = Image.objects.get(id=c['data']['img']['id'])
i.save()
else:
i = Image.objects.create(
position=c['data']['position'],
title=c['data']['title'],
course=course,
img=Image.objects.get(c['data']['img']),
img=Image.objects.get(id=c['data']['img']['id']),
)
elif c['type'] == 'imagetext':
if 'id' in c['data']:
@ -229,7 +234,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
it.position = c['data']['position']
it.title = c['data']['title']
it.course = course
it.img = Image.objects.get(c['data']['img'])
it.img = Image.objects.get(id=c['data']['img']['id'])
it.txt = c['data']['txt']
it.save()
else:
@ -237,7 +242,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
position=c['data']['position'],
title=c['data']['title'],
course=course,
img=Image.objects.get(c['data']['img']),
img=Image.objects.get(id=c['data']['img']['id']),
txt=c['data']['txt'],
)
elif c['type'] == 'video':

Loading…
Cancel
Save