From 470d7252eba9231664003e9a50fce7ae91a73479 Mon Sep 17 00:00:00 2001 From: gzbender Date: Thu, 12 Jul 2018 19:10:06 +0500 Subject: [PATCH] =?UTF-8?q?LIL-559=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B1=D0=BB=D0=BE=D0=BA=20=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8=D0=B5=D0=B2=20=D0=B2?= =?UTF-8?q?=20=D1=83=D1=80=D0=BE=D0=BA=D0=B8=20=D0=BE=D0=BD=D0=BB=D0=B0?= =?UTF-8?q?=D0=B9=D0=BD-=D1=88=D0=BA=D0=BE=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/v1/views.py | 27 ++++++++++++++----- web/src/components/Comment.vue | 13 ++++----- web/src/components/CommentForm.vue | 10 +++---- web/src/components/Comments.vue | 20 +++++--------- web/src/js/modules/api.js | 4 +-- web/src/sass/_common.sass | 42 +++++++++++++++++++++++++++--- 6 files changed, 78 insertions(+), 38 deletions(-) diff --git a/api/v1/views.py b/api/v1/views.py index 5505310a..bc184a6d 100644 --- a/api/v1/views.py +++ b/api/v1/views.py @@ -424,23 +424,24 @@ class ObjectCommentsViewSet(ExtendedModelViewSet): queryset = self.queryset obj_type = self.request.query_params.get('obj_type') obj_id = self.request.query_params.get('obj_id') - is_deactivated = self.request.query_params.get('is_deactivated', '0') + is_deactivated = self.request.query_params.get('is_deactivated') if obj_type == self.OBJ_TYPE_COURSE: - queryset = CourseComment.objects.filter(course=obj_id, parent__isnull=True) + queryset = CourseComment.objects.filter(course=obj_id) elif obj_type == self.OBJ_TYPE_LESSON: - queryset = LessonComment.objects.filter(lesson=obj_id, parent__isnull=True) + queryset = LessonComment.objects.filter(lesson=obj_id) if is_deactivated == '0': queryset = queryset.filter(level=0) elif is_deactivated == '1': queryset = queryset.filter(deactivated_at__isnull=True) elif is_deactivated == '2': queryset = queryset.filter(deactivated_at__isnull=False) - return queryset + return queryset.order_by('update_at') def get_serializer_class(self): if self.request.method == 'POST': return CommentCreateSerializer obj_type = self.request.query_params.get('obj_type') + serializer_class = CommentSerializer if obj_type == self.OBJ_TYPE_COURSE: serializer_class = CourseCommentSerializer elif obj_type == self.OBJ_TYPE_LESSON: @@ -451,18 +452,32 @@ class ObjectCommentsViewSet(ExtendedModelViewSet): obj_type = self.request.data.get('obj_type') obj_id = self.request.data.get('obj_id') serializer.save() - pusher().trigger(f'comments_{obj_type}_{obj_id}', 'add', serializer.data) + try: + pusher().trigger(f'comments_{obj_type}_{obj_id}', 'add', serializer.data) + except Exception as e: + print(e) def perform_destroy(self, instance): obj_type = None + obj_id = None if isinstance(instance, LessonComment): obj_type = self.OBJ_TYPE_LESSON + obj_id = instance.lesson_id elif isinstance(instance, CourseComment): obj_type = self.OBJ_TYPE_COURSE + obj_id = instance.course_id serializer = self.get_serializer(instance) - pusher().trigger(f'comments_{obj_type}_{obj_id}', 'delete', serializer.data) + try: + pusher().trigger(f'comments_{obj_type}_{obj_id}', 'delete', serializer.data) + except Exception as e: + print(e) instance.delete() + def list(self, request, *args, **kwargs): + queryset = self.filter_queryset(self.get_queryset()).filter(parent__isnull=True) + serializer = self.get_serializer(queryset, many=True) + return Response(serializer.data) + class AuthorRequestViewSet(ExtendedModelViewSet): queryset = AuthorRequest.objects.all() diff --git a/web/src/components/Comment.vue b/web/src/components/Comment.vue index e5f262d7..279992f9 100644 --- a/web/src/components/Comment.vue +++ b/web/src/components/Comment.vue @@ -1,6 +1,6 @@