Merge branch 'feature/api' of gitlab.com:lilcity/backend into feature/create-edit-courses

remotes/origin/hasaccess
Vitaly Baev 8 years ago
commit a79af4c2a1
  1. 33
      api/v1/serializers/course.py

@ -71,7 +71,10 @@ class CategorySerializer(serializers.ModelSerializer):
class CourseCreateSerializer(serializers.ModelSerializer): class CourseCreateSerializer(serializers.ModelSerializer):
slug = serializers.SlugField(allow_unicode=True, required=False) slug = serializers.SlugField(allow_unicode=True, required=False)
content = serializers.ListSerializer(child=ContentCreateSerializer(), required=False) content = serializers.ListSerializer(
child=ContentCreateSerializer(),
required=False,
)
materials = MaterialSerializer(many=True, required=False) materials = MaterialSerializer(many=True, required=False)
class Meta: class Meta:
@ -115,13 +118,13 @@ class CourseCreateSerializer(serializers.ModelSerializer):
for c in content: for c in content:
if c['type'] == 'text': if c['type'] == 'text':
if 'id' in c['data']: if 'id' in c['data'] and c['data']['id']:
t = Text.objects.get(id=c['data']['id']) t = Text.objects.get(id=c['data']['id'])
t.position = c['data']['position'] t.position = c['data']['position']
t.title = c['data']['title'] t.title = c['data']['title']
t.course = course t.course = course
t.txt = c['data']['txt'] t.txt = c['data']['txt']
i.save() t.save()
else: else:
t = Text.objects.create( t = Text.objects.create(
position=c['data']['position'], position=c['data']['position'],
@ -130,7 +133,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
txt=c['data']['txt'], txt=c['data']['txt'],
) )
elif c['type'] == 'image': elif c['type'] == 'image':
if 'id' in c['data']: if 'id' in c['data'] and c['data']['id']:
i = Image.objects.get(id=c['data']['id']) i = Image.objects.get(id=c['data']['id'])
i.position = c['data']['position'] i.position = c['data']['position']
i.title = c['data']['title'] i.title = c['data']['title']
@ -145,7 +148,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
img=Image.objects.get(id=c['data']['img']['id']), img=Image.objects.get(id=c['data']['img']['id']),
) )
elif c['type'] == 'image-text': elif c['type'] == 'image-text':
if 'id' in c['data']: if 'id' in c['data'] and c['data']['id']:
it = ImageText.objects.get(id=c['data']['id']) it = ImageText.objects.get(id=c['data']['id'])
it.position = c['data']['position'] it.position = c['data']['position']
it.title = c['data']['title'] it.title = c['data']['title']
@ -154,7 +157,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
it.txt = c['data']['txt'] it.txt = c['data']['txt']
it.save() it.save()
else: else:
i = ImageText.objects.create( it = ImageText.objects.create(
position=c['data']['position'], position=c['data']['position'],
title=c['data']['title'], title=c['data']['title'],
course=course, course=course,
@ -162,7 +165,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
txt=c['data']['txt'], txt=c['data']['txt'],
) )
elif c['type'] == 'video': elif c['type'] == 'video':
if 'id' in c['data']: if 'id' in c['data'] and c['data']['id']:
v = Video.objects.get(id=c['data']['id']) v = Video.objects.get(id=c['data']['id'])
v.position = c['data']['position'] v.position = c['data']['position']
v.title = c['data']['title'] v.title = c['data']['title']
@ -177,7 +180,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
url=c['data']['url'], url=c['data']['url'],
) )
for material in materials: for material in materials:
if 'id' in material: if 'id' in material and material['id']:
m = Material.objects.get(id=material['id']) m = Material.objects.get(id=material['id'])
m.title = material['title'] m.title = material['title']
m.cover = ImageObject.objects.get(id=material['cover']) m.cover = ImageObject.objects.get(id=material['cover'])
@ -199,13 +202,13 @@ class CourseCreateSerializer(serializers.ModelSerializer):
for c in content: for c in content:
if c['type'] == 'text': if c['type'] == 'text':
if 'id' in c['data']: if 'id' in c['data'] and c['data']['id']:
t = Text.objects.get(id=c['data']['id']) t = Text.objects.get(id=c['data']['id'])
t.position = c['data']['position'] t.position = c['data']['position']
t.title = c['data']['title'] t.title = c['data']['title']
t.course = course t.course = course
t.txt = c['data']['txt'] t.txt = c['data']['txt']
i.save() t.save()
else: else:
t = Text.objects.create( t = Text.objects.create(
position=c['data']['position'], position=c['data']['position'],
@ -214,7 +217,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
txt=c['data']['txt'], txt=c['data']['txt'],
) )
elif c['type'] == 'image': elif c['type'] == 'image':
if 'id' in c['data']: if 'id' in c['data'] and c['data']['id']:
i = Image.objects.get(id=c['data']['id']) i = Image.objects.get(id=c['data']['id'])
i.position = c['data']['position'] i.position = c['data']['position']
i.title = c['data']['title'] i.title = c['data']['title']
@ -229,7 +232,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
img=Image.objects.get(id=c['data']['img']['id']), img=Image.objects.get(id=c['data']['img']['id']),
) )
elif c['type'] == 'imagetext': elif c['type'] == 'imagetext':
if 'id' in c['data']: if 'id' in c['data'] and c['data']['id']:
it = ImageText.objects.get(id=c['data']['id']) it = ImageText.objects.get(id=c['data']['id'])
it.position = c['data']['position'] it.position = c['data']['position']
it.title = c['data']['title'] it.title = c['data']['title']
@ -238,7 +241,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
it.txt = c['data']['txt'] it.txt = c['data']['txt']
it.save() it.save()
else: else:
i = ImageText.objects.create( it = ImageText.objects.create(
position=c['data']['position'], position=c['data']['position'],
title=c['data']['title'], title=c['data']['title'],
course=course, course=course,
@ -246,7 +249,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
txt=c['data']['txt'], txt=c['data']['txt'],
) )
elif c['type'] == 'video': elif c['type'] == 'video':
if 'id' in c['data']: if 'id' in c['data'] and c['data']['id']:
v = Video.objects.get(id=c['data']['id']) v = Video.objects.get(id=c['data']['id'])
v.position = c['data']['position'] v.position = c['data']['position']
v.title = c['data']['title'] v.title = c['data']['title']
@ -261,7 +264,7 @@ class CourseCreateSerializer(serializers.ModelSerializer):
url=c['data']['url'], url=c['data']['url'],
) )
for material in materials: for material in materials:
if 'id' in material: if 'id' in material and material['id']:
m = Material.objects.get(id=material['id']) m = Material.objects.get(id=material['id'])
m.title = material['title'] m.title = material['title']
m.cover = ImageObject.objects.get(id=material['cover']) m.cover = ImageObject.objects.get(id=material['cover'])

Loading…
Cancel
Save