diff --git a/csv/load_courses.py b/csv/load_courses.py index 1dd14cf..39b14c7 100644 --- a/csv/load_courses.py +++ b/csv/load_courses.py @@ -1,5 +1,7 @@ import csv import os +import random +import string import sys import django @@ -30,10 +32,19 @@ if __name__ == '__main__': row.pop('mentors', None).split("[")[1].split("]")[0].split(", ") course, _is_create = Course.objects.get_or_create(**row) + map_obj = CourseMap.objects.create(course=course) + route_obj = CourseRoute.objects.create( + name='''%s''' % course.title, + out_key=''.join(random.choice(string.ascii_letters) for x in range(15)), + ) + PivotCourseMap.objects.create(map_course=map_obj, route=route_obj, sort=0) + course.route = route_obj + course.save() + try: for teacher in teachers: if teacher: - teacher = get_user_model().objects.get(id=teacher).token + teacher = get_user_model().objects.get(id=teacher).out_key InApiTeacher.add_teacher(course.slug, teacher) except get_user_model().DoesNotExist: @@ -47,7 +58,11 @@ if __name__ == '__main__': description = row.pop('description', None) title = row.pop('title', None) pk = row.pop('id', None) - materials = [File.objects.get(id=i).key for i in row.pop('materials', None)] + try: + materials = [File.objects.get(id=i).key for i in row.pop('materials', None).split("[")[1].split("]")[0].split(", ")] + except IndexError: + materials = [] + if model_type == 'topic': course = Course.objects.get(id=row.pop('course', None)) Topic.objects.create( @@ -58,9 +73,10 @@ if __name__ == '__main__': title=title, ) + sort = 0 if model_type == 'tutorial': topic = Topic.objects.get(id=row.pop('parent', None)) - Vertex.objects.create( + small_vertex=Vertex.objects.create( id=pk, video=row.pop('video', None), materials=materials, @@ -68,10 +84,12 @@ if __name__ == '__main__': description=description, title=title, ) + PivotVertex.objects.create(map_course=map_obj, vertex=small_vertex, sort=sort) + sort += 1 if model_type == 'task': topic = Topic.objects.get(id=row.pop('parent', None)) - Vertex.objects.create( + small_vertex=Vertex.objects.create( id=pk, materials=materials, topic=topic, @@ -79,6 +97,8 @@ if __name__ == '__main__': title=title, valid_type=1, ) + PivotVertex.objects.create(map_course=map_obj, vertex=small_vertex, sort=sort) + sort += 1 for course in Course.objects.all(): map_obj = CourseMap.objects.create(course=course)