|
|
|
|
@ -14,91 +14,76 @@ from courses.models import Course, Lesson, Topic, Demand, LessonDemand |
|
|
|
|
from storage.models import File |
|
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
|
Course.objects.all().delete() |
|
|
|
|
Topic.objects.all().delete() |
|
|
|
|
|
|
|
|
|
with open('./course/course.csv') as user_csv: |
|
|
|
|
user_reader = csv.DictReader(user_csv) |
|
|
|
|
for row in user_reader: |
|
|
|
|
row = dict(row) |
|
|
|
|
teachers = row.pop('teachers', None).split("[")[1].split("]")[0].split(", ") |
|
|
|
|
course, _is_create = Course.objects.get_or_create(**row) |
|
|
|
|
# with open('./course/course.csv') as user_csv: |
|
|
|
|
# user_reader = csv.DictReader(user_csv) |
|
|
|
|
# for row in user_reader: |
|
|
|
|
# row = dict(row) |
|
|
|
|
# teachers = row.pop('teachers', None).split("[")[1].split("]")[0].split(", ") |
|
|
|
|
# course, _is_create = Course.objects.get_or_create(**row) |
|
|
|
|
# |
|
|
|
|
# try: |
|
|
|
|
# for teacher in teachers: |
|
|
|
|
# teacher = teacher.replace("\'", "") |
|
|
|
|
# if teacher: |
|
|
|
|
# teacher = get_user_model().objects.get(email=teacher).out_key |
|
|
|
|
# InApiTeacher.add_teacher(course.slug, teacher) |
|
|
|
|
# |
|
|
|
|
# except get_user_model().DoesNotExist: |
|
|
|
|
# print('Плохо') |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
for teacher in teachers: |
|
|
|
|
teacher = teacher.replace("\'", "") |
|
|
|
|
if teacher: |
|
|
|
|
teacher = get_user_model().objects.get(email=teacher).out_key |
|
|
|
|
InApiTeacher.add_teacher(course.slug, teacher) |
|
|
|
|
|
|
|
|
|
except get_user_model().DoesNotExist: |
|
|
|
|
print('Плохо') |
|
|
|
|
|
|
|
|
|
with open('./course/vertex.csv') as vertex_csv: |
|
|
|
|
t_sort = 0 |
|
|
|
|
l_sort = 0 |
|
|
|
|
vertex_reader = csv.DictReader(vertex_csv) |
|
|
|
|
for row in vertex_reader: |
|
|
|
|
row = dict(row) |
|
|
|
|
model_type = row.pop('type', None) |
|
|
|
|
description = row.pop('description', None) |
|
|
|
|
title = row.pop('title', None) |
|
|
|
|
pk = row.pop('id', None) |
|
|
|
|
try: |
|
|
|
|
m = row.pop('materials', None) |
|
|
|
|
with open('./course/old_new_id.csv', 'w') as write_id_csv: |
|
|
|
|
writer = csv.writer(write_id_csv) |
|
|
|
|
writer.writerow(['old_id', 'new_id']) |
|
|
|
|
with open('./course/vertex.csv') as vertex_csv: |
|
|
|
|
t_sort = 0 |
|
|
|
|
l_sort = 0 |
|
|
|
|
vertex_reader = csv.DictReader(vertex_csv) |
|
|
|
|
for row in vertex_reader: |
|
|
|
|
row = dict(row) |
|
|
|
|
model_type = row.pop('type', None) |
|
|
|
|
description = row.pop('description', None) |
|
|
|
|
title = row.pop('title', None) |
|
|
|
|
pk = row.pop('id', None) |
|
|
|
|
materials = [] |
|
|
|
|
if m: |
|
|
|
|
materials = [File.objects.get(id=i).key for i in m.split("[")[1].split("]")[0].split(", ")] |
|
|
|
|
except ValueError: |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
if model_type == 'topic': |
|
|
|
|
t_sort += 1 |
|
|
|
|
course = Course.objects.get(slug=row.pop('course', None)) |
|
|
|
|
Topic.objects.create( |
|
|
|
|
id=pk, |
|
|
|
|
icon=row.pop('icon', None), |
|
|
|
|
course=course, |
|
|
|
|
description=description, |
|
|
|
|
title=title, |
|
|
|
|
sort=t_sort, |
|
|
|
|
) |
|
|
|
|
try: |
|
|
|
|
m = row.pop('materials', None) |
|
|
|
|
if m: |
|
|
|
|
materials = [File.objects.get(id=i).key for i in m.split("[")[1].split("]")[0].split(", ")] |
|
|
|
|
except ValueError: |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
topic_id = row.pop('topic', None) |
|
|
|
|
if model_type == 'tutorial': |
|
|
|
|
l_sort += 1 |
|
|
|
|
topic = Topic.objects.get(id=topic_id) |
|
|
|
|
small_vertex = Lesson.objects.create( |
|
|
|
|
video=row.pop('video', None), |
|
|
|
|
material_tokens=materials, |
|
|
|
|
topic=topic, |
|
|
|
|
free=row['free'], |
|
|
|
|
if model_type == 'topic': |
|
|
|
|
t_sort += 1 |
|
|
|
|
course = Course.objects.get(slug=row.pop('course', None)) |
|
|
|
|
Topic.objects.create( |
|
|
|
|
id=pk, |
|
|
|
|
icon=row.pop('icon', None), |
|
|
|
|
course=course, |
|
|
|
|
description=description, |
|
|
|
|
title=title, |
|
|
|
|
sort=l_sort, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
LessonDemand.objects.create( |
|
|
|
|
lesson=small_vertex, |
|
|
|
|
demand=Demand.objects.get(name="Стандартные требования"), |
|
|
|
|
sort=t_sort, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
if model_type == 'task': |
|
|
|
|
else: |
|
|
|
|
topic_id = row.pop('topic', None) |
|
|
|
|
l_sort += 1 |
|
|
|
|
topic = Topic.objects.get(id=topic_id) |
|
|
|
|
small_vertex = Lesson.objects.create( |
|
|
|
|
video=row.pop('video', None), |
|
|
|
|
material_tokens=materials, |
|
|
|
|
topic=topic, |
|
|
|
|
free=row['free'], |
|
|
|
|
description=description, |
|
|
|
|
title=title, |
|
|
|
|
sort=l_sort, |
|
|
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
LessonDemand.objects.create( |
|
|
|
|
lesson=small_vertex, |
|
|
|
|
demand=Demand.objects.get(name="Стандартные требования"), |
|
|
|
|
) |
|
|
|
|
writer.writerow([pk, small_vertex.token]) |
|
|
|
|
|
|
|
|
|
except Topic.DoesNotExist: |
|
|
|
|
pass |
|
|
|
|
if model_type == 'task': |
|
|
|
|
LessonDemand.objects.create( |
|
|
|
|
lesson=small_vertex, |
|
|
|
|
demand=Demand.objects.get(name="Стандартные требования"), |
|
|
|
|
) |