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.
58 lines
2.0 KiB
58 lines
2.0 KiB
import csv
|
|
import random
|
|
import string
|
|
|
|
import django
|
|
import os
|
|
import sys
|
|
|
|
from django.contrib.auth import get_user_model
|
|
from django.db import IntegrityError
|
|
|
|
sys.path.append("../")
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
|
|
django.setup()
|
|
|
|
from storage.models import Comment, File
|
|
from courses.models import Lesson
|
|
from access.models.progress import ProgressLesson
|
|
|
|
if __name__ == '__main__':
|
|
csv.field_size_limit(500 * 1024 * 1024)
|
|
Comment.objects.all().delete()
|
|
with open('./management/comment.csv') as comment_csv:
|
|
comment_reader = csv.DictReader(comment_csv)
|
|
for row in comment_reader:
|
|
if row['type'] == 'task' or row['type'] == 'exam':
|
|
l = Lesson.objects.get(old_id=row['parent_id'])
|
|
|
|
try:
|
|
p = ProgressLesson.objects.get(
|
|
lesson_token=l.token,
|
|
progress__user__email=row['student'],
|
|
)
|
|
files = [File.objects.get(id=file) for file in row['files'].split("[")[1].split("]")[0].split(',')
|
|
if not file == '']
|
|
|
|
comment = Comment.objects.create(
|
|
text=row['text'],
|
|
email=row['owner__email'],
|
|
)
|
|
|
|
if row['status'] == 'Одобренно':
|
|
p.status = ProgressLesson.STATUSES.done
|
|
p.date = row['date']
|
|
elif row['status'] == 'Отклонено':
|
|
p.status = ProgressLesson.STATUSES.fail
|
|
else:
|
|
p.status = ProgressLesson.STATUSES.wait
|
|
|
|
p.save()
|
|
|
|
[comment.files.add(file) for file in files]
|
|
comment.date = row['date']
|
|
comment.save()
|
|
|
|
p.comment_tokens.append(comment.token)
|
|
except ProgressLesson.DoesNotExist:
|
|
pass
|
|
|