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.
67 lines
2.7 KiB
67 lines
2.7 KiB
import os, sys, django, csv
|
|
|
|
from django.contrib.auth import get_user_model
|
|
|
|
sys.path.append("../")
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
|
|
django.setup()
|
|
|
|
from courses.models import Vertex
|
|
from django.contrib.contenttypes.models import ContentType
|
|
from journals.models import Thread, Journal
|
|
from storage.models import Storage
|
|
|
|
if __name__ == '__main__':
|
|
csv.field_size_limit(500 * 1024 * 1024)
|
|
thread = Thread.objects.get(key='Student_teacher')
|
|
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':
|
|
owner = get_user_model().objects.get(email=row['owner__email'])
|
|
sub = get_user_model().objects.get(email=row['sub__email'])
|
|
vertex = Vertex.objects.get(object_id=row['object_id'], content_type__model='task')
|
|
action = 0
|
|
if row['status'] == "Одобрено":
|
|
action = 1
|
|
child_thread, is_create = Thread.objects.get_or_create(
|
|
key="""user_%s__staff_%s""" % (sub.id, owner.id,)
|
|
)
|
|
elif row['status'] == "Отклонено":
|
|
action = 2
|
|
child_thread, is_create = Thread.objects.get_or_create(
|
|
key="""user_%s__staff_%s""" % (sub.id, owner.id,)
|
|
)
|
|
else:
|
|
child_thread, is_create = Thread.objects.get_or_create(
|
|
key="""user_%s__staff_%s""" % (owner.id, sub.id,)
|
|
)
|
|
|
|
journal = Journal.objects.create(
|
|
thread=child_thread,
|
|
user=owner,
|
|
content_type=ct,
|
|
object_id=vertex.id,
|
|
action_type=action,
|
|
date=row['date'],
|
|
)
|
|
|
|
journal_comment = Journal.objects.create(
|
|
thread=child_thread,
|
|
user=owner,
|
|
content_type=ct,
|
|
object_id=vertex.id,
|
|
action_type=7,
|
|
extra_data=row['text'],
|
|
date=row['date'],
|
|
)
|
|
|
|
for file_id in row['files'].split("[")[1].split("]")[0].split(", "):
|
|
if file_id:
|
|
journal.files.add(Storage.objects.get(id=file_id))
|
|
|
|
if is_create:
|
|
child_thread.parent.add(thread)
|
|
child_thread.subscribers.add(owner)
|
|
child_thread.subscribers.add(sub)
|
|
|