import csv import django import os import sys import json from datetime import datetime 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, ProgressLesson from courses.models import Lesson, 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']) route = course.route.out_key api = OutApiRoute list_vertex = OutApiRoute.get_route_matrix(route)[0] try: user = get_user_model().objects.get(id=row['user']) except get_user_model().DoesNotExist: print(row['user']) continue try: p = Progress.objects.get( course=course.slug, user=user, teacher=get_user_model().objects.get(id=row['teacher']), ) except Progress.DoesNotExist: p = Progress.objects.create( course=course.slug, user=user, teacher=get_user_model().objects.get(id=row['teacher']), ) pivots = json.loads(row['success']) for pivot in pivots: try: pv = ProgressLesson.objects.create( progress=p, vertex=Lesson.objects.get(id=pivot['id']).token, teacher=get_user_model().objects.get(id=pivot['teacher']), status='wait', ) if pivot['date'] and not pivot['date'] == 'None': pv.date = datetime.strptime(pivot['date'].split('.')[0], '%Y-%m-%d %H:%M:%S') pv.status = 2 pv.save() except Lesson.DoesNotExist: pass g = Group.objects.get(name='students') g.user_set.add(user)