From 0e1a3992ebcec6343f371f80143282f4b422f250 Mon Sep 17 00:00:00 2001 From: cuom1999 Date: Thu, 28 Sep 2023 18:23:39 -0500 Subject: [PATCH] Comment page speed --- judge/comments.py | 7 ++++--- judge/views/comment.py | 15 ++++----------- templates/comments/content-list.html | 9 +++------ templates/comments/media-js.html | 2 +- 4 files changed, 12 insertions(+), 21 deletions(-) diff --git a/judge/comments.py b/judge/comments.py index be33a4e..65d8f7e 100644 --- a/judge/comments.py +++ b/judge/comments.py @@ -168,7 +168,7 @@ class CommentedDetailView(TemplateResponseMixin, SingleObjectMixin, View): ) def _get_queryset(self, target_comment): - if target_comment != None: + if target_comment: queryset = target_comment.get_descendants(include_self=True) queryset = ( queryset.select_related("author__user") @@ -217,11 +217,11 @@ class CommentedDetailView(TemplateResponseMixin, SingleObjectMixin, View): context["has_comments"] = queryset.exists() context["comment_lock"] = self.is_comment_locked() - context["comment_list"] = queryset + context["comment_list"] = list(queryset) context["vote_hide_threshold"] = settings.DMOJ_COMMENT_VOTE_HIDE_THRESHOLD if queryset.exists(): - context["comment_root_id"] = queryset[0].id + context["comment_root_id"] = context["comment_list"][0].id else: context["comment_root_id"] = 0 context["comment_parent_none"] = 1 @@ -234,4 +234,5 @@ class CommentedDetailView(TemplateResponseMixin, SingleObjectMixin, View): context["limit"] = DEFAULT_OFFSET context["comment_count"] = comment_count + context["profile"] = self.request.profile return context diff --git a/judge/views/comment.py b/judge/views/comment.py index 03285ad..58ba3fc 100644 --- a/judge/views/comment.py +++ b/judge/views/comment.py @@ -15,12 +15,11 @@ from django.http import ( HttpResponseBadRequest, HttpResponseForbidden, ) -from django.shortcuts import get_object_or_404 +from django.shortcuts import get_object_or_404, render from django.utils.translation import gettext as _ from django.views.decorators.http import require_POST from django.views.generic import DetailView, UpdateView from django.urls import reverse_lazy -from django.template import loader from reversion import revisions from reversion.models import Version @@ -42,11 +41,6 @@ __all__ = [ @login_required - -# def get_more_reply(request, id): -# queryset = Comment.get_pk(id) - - def vote_comment(request, delta): if abs(delta) != 1: return HttpResponseBadRequest( @@ -164,10 +158,11 @@ def get_comments(request, limit=10): new_offset = offset + min(len(queryset), limit) - comment_html = loader.render_to_string( + return render( + request, "comments/content-list.html", { - "request": request, + "profile": profile, "comment_root_id": comment_root_id, "comment_list": queryset, "vote_hide_threshold": settings.DMOJ_COMMENT_VOTE_HIDE_THRESHOLD, @@ -181,8 +176,6 @@ def get_comments(request, limit=10): }, ) - return HttpResponse(comment_html) - def get_show_more(request): return get_comments(request) diff --git a/templates/comments/content-list.html b/templates/comments/content-list.html index c08fd46..ebf0c31 100644 --- a/templates/comments/content-list.html +++ b/templates/comments/content-list.html @@ -1,13 +1,10 @@ -{% set logged_in = request.user.is_authenticated %} -{% set profile = request.profile if logged_in else None %} - {% for node in mptt_tree(comment_list) recursive %}
  • - {% if logged_in %} + {% if profile %} {% else %} @@ -16,7 +13,7 @@ {% endif %}
    {{ node.score }}
    - {% if logged_in %} + {% if profile %} {% else %} @@ -55,7 +52,7 @@ - {% if logged_in and not comment_lock %} + {% if profile and not comment_lock %} {% set can_edit = node.author.id == profile.id and not profile.mute %} {% if can_edit %} $(document).ready(function () { - let loading_gif = ""; + let loading_gif = ""; window.reply_comment = function (parent) { var $comment_reply = $('#comment-' + parent + '-reply'); var reply_id = 'reply-' + parent;