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.
 
 
 
 
 
 

52 lines
2.0 KiB

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.other import Progress
from courses.models import Vertex, 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'])
vertex = None
try:
if row['type'] == 'lesson':
vertex = Vertex.objects.get(content_type__model='tutorial', object_id=row['last_success_obj'],
course=course)
elif row['type'] == 'homework':
vertex = Vertex.objects.get(content_type__model='task', object_id=row['last_success_obj'],
course=course)
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)
except Vertex.DoesNotExist:
pass
try:
if vertex is not None:
p, c = Progress.objects.get_or_create(
user=get_user_model().objects.get(id=row['user']),
course=course,
)
obj_list = list(course.route.get_maps())[0].get_objects(vertex)
if c:
p.progress_list.add(*obj_list)
else:
p, c = Progress.objects.get_or_create(
user=get_user_model().objects.get(id=row['user']),
course=course,
)
except get_user_model().DoesNotExist:
print(row['user'])