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 @@