import os, sys import django, json sys.path.append("../") os.environ['PG_PORT_5432_TCP_ADDR'] = '127.0.0.1' os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() from courses.models import Course, NormalMap, CourseTheme, Lesson, Homework, Exam, Vertex def get_url(frame): frame = frame[frame.find('src=')+5:] url = frame[:frame.find('\"')] return url if __name__ == '__main__': for course in Course.objects.all(): course_list = [] for theme in CourseTheme.objects.filter(course=course).order_by('sort'): topic_vertex = Vertex.manager.create_with_dependencies( course=course, title=theme.title, description=theme.description, model='topic', icon=theme.icon, old_id='t_' + str(theme.id), ) course_list.append(topic_vertex.id) topic_list = [] pay_lesson_exist = False for i in Lesson.objects.filter(theme=theme).order_by('sort'): on_comment = i.on_comment == 'N' or i.on_comment == 'T' and i.theme.on_comment vertex = Vertex.manager.create_with_dependencies( course=course, title=i.title, description=i.description, model='tutorial', on_comment=on_comment, video=get_url(i.video), materials=i.materials.all(), free=i.free, old_id='l_' + str(i.id), ) pay_lesson_exist = pay_lesson_exist or not i.free topic_vertex.children.add(vertex) topic_list.append(vertex.id) for i in Homework.objects.filter(theme=theme).order_by('sort'): vertex = Vertex.manager.create_with_dependencies( course=course, title='Домашняя работа', description=i.description, model='task', is_exam=False, materials=i.materials.all(), free=not pay_lesson_exist, old_id='h_' + str(i.id), ) topic_vertex.children.add(vertex) topic_list.append(vertex.id) for i in Exam.objects.filter(theme=theme).order_by('sort'): vertex = Vertex.manager.create_with_dependencies( course=course, title='Экзамен', description=i.description, model='task', is_exam=True, materials=i.materials.all(), free=not pay_lesson_exist, old_id='e_' + str(i.id), ) topic_vertex.children.add(vertex) topic_list.append(vertex.id) topic_vertex.free = not pay_lesson_exist topic_vertex.save() course_list.append(topic_list) course_map, _is_create = NormalMap.objects.get_or_create(course=course) course_map.dependent_elements = json.dumps(course_list) course_map.save()