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.
 
 
 
 
 
 

68 lines
2.1 KiB

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'])