You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

64 lines
2.2 KiB

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, 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
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(
user=user,
teacher=get_user_model().objects.get(id=row['teacher']),
)
except Progress.DoesNotExist:
p = Progress.objects.create(
user=user,
teacher=get_user_model().objects.get(id=row['teacher']),
)
pivots = json.loads(row['success'])
for pivot in pivots:
try:
pv = PivotProgressVertex.objects.create(
progress=p,
vertex=Vertex.objects.get(id=pivot['id']).token,
teacher=get_user_model().objects.get(id=pivot['teacher']),
status=1,
)
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 Vertex.DoesNotExist:
pass
g = Group.objects.get(name='students')
g.user_set.add(user)