feature/fix_generate_pass
Andrey 8 years ago
parent 36af875ffb
commit 83fdf1f70e
  1. 22
      access/migrations/0004_auto_20171215_1735.py
  2. 2
      access/models/other.py
  3. 62
      csv/load_comments.py
  4. 20
      storage/migrations/0002_auto_20171214_1908.py
  5. 20
      storage/migrations/0004_auto_20171215_1704.py
  6. 2
      storage/models.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2017-12-15 17:35
from __future__ import unicode_literals
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('access', '0003_auto_20171214_2049'),
]
operations = [
migrations.AlterField(
model_name='pivotprogressvertex',
name='teacher',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Преподователь'),
),
]

@ -68,7 +68,7 @@ class PivotProgressVertex(models.Model):
(1, 'Ожидание'),
(0, 'Не выполненно'),
)
teacher = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name="Преподователь по умолчанию",
teacher = models.ForeignKey(to=settings.AUTH_USER_MODEL, verbose_name="Преподователь",
blank=True, null=True)
progress = models.ForeignKey(to=Progress)
vertex = ArrayField(models.CharField(max_length=15, blank=True, verbose_name='Ссылки на узлы', unique=True),)

@ -1,4 +1,7 @@
import csv
import random
import string
import django
import os
import sys
@ -10,49 +13,40 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
django.setup()
from course_service.courses.models import Vertex
from storage.models import Comment
from storage.models import Comment, File
from access.models.other import PivotProgressVertex
if __name__ == '__main__':
Comment.objects.all().delete()
csv.field_size_limit(500 * 1024 * 1024)
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'],
if row['type'] == 'task' or row['type'] == 'exam':
c = Comment.objects.create(
id=row['id'],
email=row['owner__email'],
text=row['text'],
key=''.join(random.choice(string.ascii_letters) for x in range(15)),
)
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))
c.files.add(File.objects.get(id=file_id))
c.date = row['date']
c.save()
parent_id = row['parent_id']
if row['type'] == 'task':
parent_id += 50
vertex = Vertex.objects.get(id=parent_id)
vertex_key = vertex.token
comment_key = c.key
PivotProgressVertex.objects.get_or_create(
comment=comment_key,
vertex=vertex_key,
progress=vertex.topic.course.route.out_key
)

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2017-12-14 19:08
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('storage', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='file',
name='key',
field=models.CharField(editable=False, max_length=15, unique=True, verbose_name='Внешний ключ'),
),
]

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2017-12-15 17:04
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('storage', '0003_comment_date'),
]
operations = [
migrations.AlterField(
model_name='file',
name='original',
field=models.FileField(max_length=255, unique=True, upload_to='files', verbose_name='Файл'),
),
]

@ -21,7 +21,7 @@ class FileManager(models.Manager):
class File(models.Model):
key = models.CharField(max_length=15, verbose_name="Внешний ключ", unique=True, editable=False)
original = models.FileField(max_length=255, verbose_name='Файл', upload_to="files")
original = models.FileField(max_length=255, verbose_name='Файл', upload_to="files", unique=True)
name = models.CharField(max_length=255, null=True, blank=True, verbose_name='Видимое имя файла')
objects = FileManager()

Loading…
Cancel
Save