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