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 import Progress from courses.models import Vertex, Course if __name__ == '__main__': with open('./access/progress.csv') as progress_csv: progress_reader = csv.DictReader(progress_csv) for row in progress_reader: vertex = None if row['type'] == 'lesson': vertex = Vertex.objects.get(content_type__model='tutorial', object_id=row['last_success_obj']) elif row['type'] == 'homework': vertex = Vertex.objects.get(content_type__model='task', object_id=row['last_success_obj']) 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.objects.get(id=row['course']) try: if vertex and not vertex == course.get_last(['task', 'tutorial']): Progress.objects.get_or_create( user=get_user_model().objects.get(id=row['user']), course=course, active_obj=vertex.get_next(['task', 'tutorial']) ) elif vertex and vertex == course.get_last(['task', 'tutorial']): Progress.objects.get_or_create( user=get_user_model().objects.get(id=row['user']), course=course, success=True ) else: Progress.objects.get_or_create( user=get_user_model().objects.get(id=row['user']), course=course, active_obj=course.get_first(['task', 'tutorial']) ) except get_user_model().DoesNotExist: print(row['user'])