You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

88 lines
3.2 KiB

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()