From 07658205acc454555b5be87df0108e6da46a3d9a Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 14 Dec 2017 19:51:20 +0300 Subject: [PATCH] fix --- csv/load_bills.py | 2 +- csv/load_courses.py | 86 +++++++++++++++++++-------------------------- csv/load_perm.py | 4 ++- csv/load_storage.py | 8 +++-- finance/signals.py | 2 +- storage/models.py | 2 +- 6 files changed, 49 insertions(+), 55 deletions(-) diff --git a/csv/load_bills.py b/csv/load_bills.py index 7520d0b..c08eeef 100644 --- a/csv/load_bills.py +++ b/csv/load_bills.py @@ -22,7 +22,7 @@ if __name__ == '__main__': bill_kwarg = dict() row = dict(row) bill_kwarg['id'] = row.pop('id', None) - bill_kwarg['course'] = Course.objects.get(id=row.pop('course__id', None)) + bill_kwarg['route'] = Course.objects.get(id=row.pop('course__id', None)).route.out_key opener_id = row.pop('opener__id', None) bill_kwarg['opener'] = get_user_model().objects.get(id=opener_id) if opener_id \ else get_user_model().objects.get(email="kate.gazukina@skillbox.ru") diff --git a/csv/load_courses.py b/csv/load_courses.py index 39b14c7..ce093b2 100644 --- a/csv/load_courses.py +++ b/csv/load_courses.py @@ -52,6 +52,7 @@ if __name__ == '__main__': with open('./course/vertex.csv') as vertex_csv: vertex_reader = csv.DictReader(vertex_csv) + sort = 0 for row in vertex_reader: row = dict(row) model_type = row.pop('type', None) @@ -59,9 +60,12 @@ if __name__ == '__main__': title = row.pop('title', None) pk = row.pop('id', None) try: - materials = [File.objects.get(id=i).key for i in row.pop('materials', None).split("[")[1].split("]")[0].split(", ")] - except IndexError: + m = row.pop('materials', None) materials = [] + if m: + materials = [File.objects.get(id=i).key for i in m.split("[")[1].split("]")[0].split(", ")] + except ValueError: + pass if model_type == 'topic': course = Course.objects.get(id=row.pop('course', None)) @@ -73,50 +77,34 @@ if __name__ == '__main__': title=title, ) - sort = 0 - if model_type == 'tutorial': - topic = Topic.objects.get(id=row.pop('parent', None)) - small_vertex=Vertex.objects.create( - id=pk, - video=row.pop('video', None), - materials=materials, - topic=topic, - description=description, - title=title, - ) - PivotVertex.objects.create(map_course=map_obj, vertex=small_vertex, sort=sort) - sort += 1 - - if model_type == 'task': - topic = Topic.objects.get(id=row.pop('parent', None)) - small_vertex=Vertex.objects.create( - id=pk, - materials=materials, - topic=topic, - description=description, - title=title, - valid_type=1, - ) - PivotVertex.objects.create(map_course=map_obj, vertex=small_vertex, sort=sort) - sort += 1 - - for course in Course.objects.all(): - map_obj = CourseMap.objects.create(course=course) - route_obj = CourseRoute.objects.create(name='''%s''' % course.title) - course.route = route_obj - sort = 0 - for vertex in Vertex.objects.filter(course=course).order_by("object_id"): - - PivotVertex.objects.create(map_course=map_obj, vertex=vertex, sort=sort) - sort += 1 - - for small_vertex in Vertex.objects.filter(course=course, content_type__model='tutorial', vertex=vertex).order_by("object_id"): - PivotVertex.objects.create(map_course=map_obj, vertex=small_vertex, sort=sort) - sort += 1 - for small_vertex in Vertex.objects.filter(course=course, content_type__model='task', vertex=vertex).order_by("object_id"): - PivotVertex.objects.create(map_course=map_obj, vertex=small_vertex, sort=sort) - sort += 1 - - PivotCourseMap.objects.create(map_course=map_obj, route=route_obj, sort=0) - - course.save() + try: + topic_id = row.pop('topic', None) + if model_type == 'tutorial': + topic = Topic.objects.get(id=topic_id) + small_vertex = Vertex.objects.create( + id=pk, + video=row.pop('video', None), + materials=materials, + topic=topic, + description=description, + title=title, + token=''.join(random.choice(string.ascii_letters) for x in range(15)) + ) + PivotVertex.objects.create(map_course=map_obj, vertex=small_vertex, sort=sort) + sort += 1 + + if model_type == 'task': + topic = Topic.objects.get(id=topic_id) + small_vertex = Vertex.objects.create( + id=pk, + materials=materials, + topic=topic, + description=description, + title=title, + valid_type=1, + token=''.join(random.choice(string.ascii_letters) for x in range(15)) + ) + PivotVertex.objects.create(map_course=map_obj, vertex=small_vertex, sort=sort) + sort += 1 + except Topic.DoesNotExist: + pass \ No newline at end of file diff --git a/csv/load_perm.py b/csv/load_perm.py index 0c8498b..39637c2 100644 --- a/csv/load_perm.py +++ b/csv/load_perm.py @@ -21,15 +21,17 @@ if __name__ == '__main__': vertex = None try: if row['type'] == 'lesson': + get_id = int(row['last_success_obj']) + 500 vertex = Vertex.objects.get(content_type__model='tutorial', object_id=row['last_success_obj'], course=course) elif row['type'] == 'homework': + get_id = int(row['last_success_obj']) +50 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 + get_id = int(row['last_success_obj']) vertex = Vertex.objects.get(content_type__model='task', object_id=str(get_id), course=course) except Vertex.DoesNotExist: diff --git a/csv/load_storage.py b/csv/load_storage.py index baf1116..7a059bd 100644 --- a/csv/load_storage.py +++ b/csv/load_storage.py @@ -1,5 +1,7 @@ import csv import os +import random +import string import sys import django @@ -8,11 +10,13 @@ sys.path.append("../") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() -from storage.api import upload_file +from storage.models import File if __name__ == '__main__': + File.objects.all().delete() with open('./course/storage.csv') as storage_csv: storage_reader = csv.DictReader(storage_csv) for row in storage_reader: if row['original']: - upload_file(original=row['original']) \ No newline at end of file + key = ''.join(random.choice(string.ascii_letters) for _x in range(15)) + File.objects.create(original=row['original'], id=row['id'], key=key) \ No newline at end of file diff --git a/finance/signals.py b/finance/signals.py index 68b5693..384c34d 100644 --- a/finance/signals.py +++ b/finance/signals.py @@ -57,7 +57,7 @@ def invoice_signal(instance, **kwargs): решить проблему самостоятельно, ответьте на это письмо, постарайтесь подробно описать последовательность действий, которая привела к ошибке""" - % (instance.bill.user.get_full_name(), instance.bill.course.title, instance.id), + % (instance.bill.user.get_full_name(), instance.bill.route.title, instance.id), instance.bill.opener.email, reply_to=["it@skillbox.ru"] ) diff --git a/storage/models.py b/storage/models.py index b03aff1..ad2478b 100755 --- a/storage/models.py +++ b/storage/models.py @@ -20,7 +20,7 @@ class FileManager(models.Manager): class File(models.Model): - key = models.CharField(max_length=15, verbose_name="Внешний ключ", unique=True) + key = models.CharField(max_length=15, verbose_name="Внешний ключ", unique=True, editable=False) original = models.FileField(max_length=255, verbose_name='Файл', upload_to="files") name = models.CharField(max_length=255, null=True, blank=True, verbose_name='Видимое имя файла')