import csv import django import os import sys sys.path.append("../") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() from django.contrib.auth.models import Group from django.contrib.auth import get_user_model from access.models.other import Progress, PivotProgressVertex from course_service.courses.models import Vertex, Course from course_service.maps.api import OutApiRoute 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: route = Course.objects.get(id=row['course']).route.out_key vertex = None try: pk=None if row['type'] == 'lesson': pk = int(row['last_success_obj']) + 600 elif row['type'] == 'homework': pk = int(row['last_success_obj']) + 50 elif row['type'] == 'exam': pk = int(row['last_success_obj']) vertex = Vertex.objects.get(id=pk).token except Vertex.DoesNotExist: pass api = OutApiRoute list_vertex = OutApiRoute.get_route_matrix(route)[0] try: user = get_user_model().objects.get(id=row['user']) if vertex is not None: p, c = Progress.objects.get_or_create( user=user, route=route, ) for i in list_vertex: PivotProgressVertex( progress=p, vertex=i, status=2, ) else: p, c = Progress.objects.get_or_create( user=user, route=route, ) g = Group.objects.get(name='students') g.user_set.add(user) except get_user_model().DoesNotExist: print(row['user'])