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.
67 lines
2.0 KiB
67 lines
2.0 KiB
# coding=utf-8
|
|
import os
|
|
import django
|
|
import sys
|
|
import simplejson
|
|
|
|
|
|
sys.path.append("/var/www/projects/codemy/")
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
|
|
django.setup()
|
|
|
|
from courses.models import Course, CourseTheme, Lesson, Exam, Homework
|
|
|
|
excludes = ['teachers', 'image', 'big_image', 'token', 'public', 'comments', 'materials', ]
|
|
data = simplejson.load(open('courses_dump.json'))
|
|
_map = {}
|
|
results = []
|
|
|
|
|
|
def get_kwargs(fields):
|
|
result = {}
|
|
for key, value in fields.items():
|
|
print(key, value)
|
|
if key not in excludes:
|
|
if key in _map:
|
|
if type(value) == list:
|
|
_result = []
|
|
for _tmp in value:
|
|
_result.append(_map[key][_tmp])
|
|
value = _result
|
|
else:
|
|
value = _map[key][value] if key in _map else value
|
|
|
|
result[key] = value
|
|
results.append(result)
|
|
return result
|
|
|
|
|
|
def add_in_map(model, key, value):
|
|
if model not in _map:
|
|
_map[model] = {}
|
|
_map[model][key] = value
|
|
|
|
for model in data:
|
|
if model['model'] == 'courses.course':
|
|
course, c = Course.objects.get_or_create(**(dict(get_kwargs(model['fields']))))
|
|
add_in_map('course', model['pk'], course)
|
|
|
|
elif model['model'] == 'courses.coursetheme':
|
|
course, c = CourseTheme.objects.get_or_create(**(dict(get_kwargs(model['fields']))))
|
|
add_in_map('theme', model['pk'], course)
|
|
|
|
elif model['model'] == 'courses.lesson':
|
|
course, c = Lesson.objects.get_or_create(**(dict(get_kwargs(model['fields']))))
|
|
add_in_map('lesson', model['pk'], course)
|
|
|
|
elif model['model'] == 'courses.exam':
|
|
course, c = Exam.objects.get_or_create(**(dict(get_kwargs(model['fields']))))
|
|
add_in_map('exam', model['pk'], course)
|
|
|
|
elif model['model'] == 'courses.homework':
|
|
course, c = Homework.objects.get_or_create(**(dict(get_kwargs(model['fields']))))
|
|
add_in_map('homework', model['pk'], course)
|
|
|
|
print(results)
|
|
|
|
#print(data[0]) |