import os, sys, django, csv sys.path.append("../") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() from django.contrib.auth import get_user_model from access.models.other import Progress from courses.models import Vertex, Course if __name__ == '__main__': Progress.objects.all().delete() with open('./access/progress.csv') as progress_csv: progress_reader = csv.DictReader(progress_csv) for row in progress_reader: course = Course.objects.get(id=row['course']) vertex = None try: if row['type'] == 'lesson': vertex = Vertex.objects.get(content_type__model='tutorial', object_id=row['last_success_obj'], course=course) elif row['type'] == 'homework': vertex = Vertex.objects.get(content_type__model='task', object_id=row['last_success_obj'], course=course) elif row['type'] == 'exam': get_id = int(row['last_success_obj']) + 10000 vertex = Vertex.objects.get(content_type__model='task', object_id=str(get_id), course=course) except Vertex.DoesNotExist: pass try: if vertex is not None: p, c = Progress.objects.get_or_create( user=get_user_model().objects.get(id=row['user']), course=course, ) obj_list = list(course.route.get_maps())[0].get_objects(vertex) if c: p.progress_list.add(*obj_list) else: p, c = Progress.objects.get_or_create( user=get_user_model().objects.get(id=row['user']), course=course, ) except get_user_model().DoesNotExist: print(row['user'])