import csv import django import os import sys from django.contrib.auth import get_user_model sys.path.append("../") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() from course_service.courses.models import Vertex from django.contrib.contenttypes.models import ContentType from journals.models import Thread, Journal from storage.models import File if __name__ == '__main__': csv.field_size_limit(500 * 1024 * 1024) ct = ContentType.objects.get(app_label='courses', model='vertex') with open('./management/comment.csv') as comment_csv: comment_reader = csv.DictReader(comment_csv) for row in comment_reader: if row['type'] == 'task': teacher_action = row['status'] == "Одобрено" or row['status'] == "Отклонено" owner = get_user_model().objects.get(email=row['owner__email']) sub = get_user_model().objects.get(email=row['sub__email']) teacher = owner if teacher_action else sub user = owner if not teacher_action else sub vertex = Vertex.objects.get(object_id=row['object_id'], content_type__model='task') action = '' + int(not teacher_action)*"try" +\ int(row['status'] == "Одобрено")*"yes" +\ int(row['status'] == "Отклонено")*"no" child_thread, is_create = Thread.objects.get_or_create( key="""user_%s__vertex_%s""" % (user.id, vertex.id,), text="""%s - %s - %s""" % (vertex.course.title, vertex.vertex_set.all()[0].title, user.get_full_name()), ) if is_create: child_thread.parent.add(Thread.objects.get(key="""user_%s""" % user.id)) child_thread.parent.add(Thread.objects.get(key="""user_%s""" % teacher.id)) child_thread.parent.add(Thread.objects.get(key='Support')) child_thread.subscribers.add(user) journal = Journal.objects.create( thread=child_thread, user=owner, content_type=ct, object_id=vertex.id, action_type=action, extra_data=row['text'], ) journal.date = row['date'] journal.save() for file_id in row['files'].split("[")[1].split("]")[0].split(", "): if file_id: journal.files.add(File.objects.get(id=file_id))