diff --git a/access/views.py b/access/views.py index 8b8b748..235b07c 100644 --- a/access/views.py +++ b/access/views.py @@ -204,23 +204,28 @@ class UpdateProgress(APIView): """ создание тредов для приёма домашки """ - thread, is_create = Thread.objects.get_or_create( - key="""user_%s__user_%s""" % (vertex.course.get_teacher().id, request.user.id,), - text="""Приватный диалог %s и %s""" % (vertex.course.get_teacher().email, request.user.email,), - is_recurse=True, + teacher_thread = Thread.objects.get( + key="""user_%s""" % vertex.course.get_teacher().id, ) - if is_create: - thread.subscribers.add(request.user) - thread.subscribers.add(vertex.course.get_teacher()) + user_thread = Thread.objects.get( + key="""user_%s""" % request.user.id, + ) + + support_thread = Thread.objects.get( + key="suports", + ) child_thread = Thread.objects.create( - key="""user_%s__vertex_%s""" % (request.id, vertex.id,), + key="""user_%s__vertex_%s""" % (request.user.id, vertex.id,), text="""Домашняя работа по курсу %s и теме %s для студента %s""" % (vertex.course.title, vertex.vertex_set.all()[0].title, request.user.get_full_name()), ) - child_thread.parent.add(thread) + child_thread.subscribers.add(request.user) + child_thread.parent.add(teacher_thread) + child_thread.parent.add(support_thread) + child_thread.parent.add(user_thread) progress.save() return Response({'id': progress.active_obj.id, 'type': progress.active_obj.content_type.model}, status=200) diff --git a/courses/models.py b/courses/models.py index 696669e..d728280 100755 --- a/courses/models.py +++ b/courses/models.py @@ -13,6 +13,7 @@ from lms.tools import decode_base64, get_real_name from lms.global_decorators import transaction_decorator from library.models import Tags from storage.models import Storage +import random COURSE_LEVEL = ( ('B', 'Базовый'), @@ -95,7 +96,7 @@ class Course(models.Model): return self.title def get_teacher(self): - return + return random.choice(self.teachers.all()) def get_tree(self, serializer): """ diff --git a/csv/load_student_teachers_threads.py b/csv/load_student_teachers_threads.py index 017b89e..b18d5fe 100644 --- a/csv/load_student_teachers_threads.py +++ b/csv/load_student_teachers_threads.py @@ -29,34 +29,20 @@ if __name__ == '__main__': int(row['status'] == "Одобрено")*"yes" +\ int(row['status'] == "Отклонено")*"no" - try: - child_thread = Thread.objects.filter(subscribers=teacher).filter(subscribers=user)[0] - except IndexError: - child_thread = Thread.objects.create( - key="""user_%s__user_%s""" % (teacher.id, user.id,), - text="""Приватный диалог %s и %s""" % (teacher.email, user.email,), - is_recurse=True, - ) - - child_thread.subscribers.add(user) - child_thread.subscribers.add(teacher) - 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_child_thread, is_create = Thread.objects.get_or_create( + 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_child_thread.parent.add(thread) - child_child_thread.parent.add(Thread.objects.get(key="""user_%s""" % user.id)) - child_child_thread.parent.add(child_thread) - child_child_thread.subscribers.add(user) + child_thread.parent.add(thread) + 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.subscribers.add(user) journal = Journal.objects.create( - thread=child_child_thread, + thread=child_thread, user=owner, content_type=ct, object_id=vertex.id, @@ -66,7 +52,7 @@ if __name__ == '__main__': journal.save() journal_comment = Journal.objects.create( - thread=child_child_thread, + thread=child_thread, user=owner, content_type=ct, object_id=vertex.id, diff --git a/journals/default_threads.py b/journals/default_threads.py index 8ad6307..8de1ef4 100644 --- a/journals/default_threads.py +++ b/journals/default_threads.py @@ -67,24 +67,6 @@ def main_threads(): managers.groups.add(Group.objects.get(name='managers')) managers.parent.add(lead_managers) - st_tch = Thread.objects.create( - key='Student_teacher', - text='Тред студентов и учителей', - is_staff=True, - is_recurse=True, - y=700, - ) - - st_tch.parent.add(support_thread) - - for i in get_user_model().objects.all(): - thread = Thread.objects.create( - key="""user_%s""" % i.id, - text="""Приватный тред пользователя %s""" % i.email, - is_recurse=True, - ) - thread.subscribers.add(i) - if __name__ == '__main__': main_threads()