diff --git a/judge/comments.py b/judge/comments.py index 88f65e6..bb8f32b 100644 --- a/judge/comments.py +++ b/judge/comments.py @@ -156,7 +156,7 @@ class CommentedDetailView(TemplateResponseMixin, SingleObjectMixin, View): def get(self, request, *args, **kwargs): target_comment = None - if "comment-id" in request.GET: + if "comment-id" in request.GET: comment_id = int(request.GET["comment-id"]) try: comment_obj = Comment.objects.get(id=comment_id) @@ -179,9 +179,7 @@ class CommentedDetailView(TemplateResponseMixin, SingleObjectMixin, View): queryset.select_related("author__user") .filter(hidden=False) .defer("author__about") - .annotate( - revisions=Count("versions", distinct=True) - ) + .annotate(revisions=Count("versions", distinct=True)) ) else: queryset = self.object.comments @@ -203,7 +201,7 @@ class CommentedDetailView(TemplateResponseMixin, SingleObjectMixin, View): "votes", condition=Q(votes__voter_id=profile.id) ), ).annotate(vote_score=Coalesce(F("my_vote__score"), Value(0))) - + return queryset def get_context_data(self, target_comment=None, **kwargs): @@ -211,9 +209,9 @@ class CommentedDetailView(TemplateResponseMixin, SingleObjectMixin, View): queryset = self._get_queryset(target_comment) comment_count = self.object.comments.filter(parent=None, hidden=False).count() context["target_comment"] = -1 - if (target_comment != None): + if target_comment != None: context["target_comment"] = target_comment.id - + if self.request.user.is_authenticated: context["is_new_user"] = ( not self.request.user.is_staff @@ -229,7 +227,7 @@ class CommentedDetailView(TemplateResponseMixin, SingleObjectMixin, View): context["vote_hide_threshold"] = settings.DMOJ_COMMENT_VOTE_HIDE_THRESHOLD if queryset.exists(): context["comment_root_id"] = queryset[0].id - else: + else: context["comment_root_id"] = 0 context["comment_parent_none"] = 1 if target_comment != None: @@ -238,7 +236,7 @@ class CommentedDetailView(TemplateResponseMixin, SingleObjectMixin, View): else: context["offset"] = DEFAULT_OFFSET context["comment_more"] = comment_count - DEFAULT_OFFSET - + context["limit"] = DEFAULT_OFFSET context["comment_count"] = comment_count return context diff --git a/judge/models/comment.py b/judge/models/comment.py index 335d567..6058cf8 100644 --- a/judge/models/comment.py +++ b/judge/models/comment.py @@ -56,7 +56,7 @@ class Comment(MPTTModel): related_name="replies", on_delete=CASCADE, ) - + versions = VersionRelation() class Meta: @@ -112,7 +112,7 @@ class Comment(MPTTModel): if len(output) >= n: return output return output - + @cached_property def get_replies(self): query = Comment.filter(parent=self) diff --git a/judge/models/course.py b/judge/models/course.py index 457e0ea..e4a155a 100644 --- a/judge/models/course.py +++ b/judge/models/course.py @@ -68,7 +68,7 @@ class Course(models.Model): return False @classmethod - def is_accessible_by(cls,course, profile): + def is_accessible_by(cls, course, profile): userqueryset = CourseRole.objects.filter(course=course, user=profile) if userqueryset.exists(): return True @@ -76,29 +76,29 @@ class Course(models.Model): return False @classmethod - def get_students(cls,course): + def get_students(cls, course): return CourseRole.objects.filter(course=course, role="ST").values("user") @classmethod - def get_assistants(cls,course): + def get_assistants(cls, course): return CourseRole.objects.filter(course=course, role="AS").values("user") @classmethod - def get_teachers(cls,course): + def get_teachers(cls, course): return CourseRole.objects.filter(course=course, role="TE").values("user") @classmethod - def add_student(cls,course, profiles): + def add_student(cls, course, profiles): for profile in profiles: CourseRole.make_role(course=course, user=profile, role="ST") @classmethod - def add_teachers(cls,course, profiles): + def add_teachers(cls, course, profiles): for profile in profiles: CourseRole.make_role(course=course, user=profile, role="TE") @classmethod - def add_assistants(cls,course, profiles): + def add_assistants(cls, course, profiles): for profile in profiles: CourseRole.make_role(course=course, user=profile, role="AS") diff --git a/judge/views/comment.py b/judge/views/comment.py index 3c88923..03285ad 100644 --- a/judge/views/comment.py +++ b/judge/views/comment.py @@ -128,19 +128,19 @@ def get_comments(request, limit=10): offset = 0 if "offset" in request.GET: offset = int(request.GET["offset"]) - + target_comment = -1 if "target_comment" in request.GET: target_comment = int(request.GET["target_comment"]) - + comment_root_id = 0 - + if comment_id: comment_obj = Comment.objects.get(pk=comment_id) comment_root_id = comment_obj.id else: comment_obj = None - + queryset = comment_obj.linked_object.comments if parent_none: queryset = queryset.filter(parent=None, hidden=False) @@ -152,35 +152,33 @@ def get_comments(request, limit=10): queryset.select_related("author__user") .defer("author__about") .annotate( - count_replies=Count("replies", distinct=True), + count_replies=Count("replies", distinct=True), revisions=Count("versions", distinct=True), - )[offset:offset+limit] + )[offset : offset + limit] ) if request.user.is_authenticated: profile = request.profile queryset = queryset.annotate( - my_vote=FilteredRelation( - "votes", condition=Q(votes__voter_id=profile.id) - ), + my_vote=FilteredRelation("votes", condition=Q(votes__voter_id=profile.id)), ).annotate(vote_score=Coalesce(F("my_vote__score"), Value(0))) new_offset = offset + min(len(queryset), limit) comment_html = loader.render_to_string( - "comments/content-list.html", + "comments/content-list.html", { "request": request, - "comment_root_id": comment_root_id, - "comment_list": queryset, - "vote_hide_threshold" : settings.DMOJ_COMMENT_VOTE_HIDE_THRESHOLD, + "comment_root_id": comment_root_id, + "comment_list": queryset, + "vote_hide_threshold": settings.DMOJ_COMMENT_VOTE_HIDE_THRESHOLD, "perms": PermWrapper(request.user), - "offset": new_offset, + "offset": new_offset, "limit": limit, "comment_count": comment_count, "comment_parent_none": parent_none, "target_comment": target_comment, - "comment_more": comment_count - new_offset - } + "comment_more": comment_count - new_offset, + }, ) return HttpResponse(comment_html) diff --git a/judge/views/course.py b/judge/views/course.py index f24155b..d8582af 100644 --- a/judge/views/course.py +++ b/judge/views/course.py @@ -10,22 +10,25 @@ __all__ = [ "CourseStudentResults", "CourseEdit", "CourseResourceDetailEdit", - "CourseResourceEdit", + "CourseResourceEdit", ] course_directory_file = "" + class CourseListMixin(object): def get_queryset(self): - return Course.objects.filter(is_open = "true").values() + return Course.objects.filter(is_open="true").values() + class CourseList(ListView): model = Course template_name = "course/list.html" queryset = Course.objects.filter(is_public=True).filter(is_open=True) + def get_context_data(self, **kwargs): - context = super(CourseList,self).get_context_data(**kwargs) - available , enrolling = [] , [] + context = super(CourseList, self).get_context_data(**kwargs) + available, enrolling = [], [] for course in Course.objects.filter(is_public=True).filter(is_open=True): if Course.is_accessible_by(course, self.request.profile): enrolling.append(course) @@ -34,4 +37,3 @@ class CourseList(ListView): context["available"] = available context["enrolling"] = enrolling return context - diff --git a/judge/views/organization.py b/judge/views/organization.py index d83d2bb..799b734 100644 --- a/judge/views/organization.py +++ b/judge/views/organization.py @@ -441,7 +441,7 @@ class OrganizationSubmissions( LoginRequiredMixin, MemberOrganizationMixin, SubmissionsListBase ): template_name = "organization/submissions.html" - + @cached_property def in_contest(self): return False diff --git a/judge/views/submission.py b/judge/views/submission.py index a7f3eb0..5a2a695 100644 --- a/judge/views/submission.py +++ b/judge/views/submission.py @@ -351,7 +351,9 @@ class SubmissionsListBase(DiggPaginatorMixin, TitleMixin, ListView): def _get_entire_queryset(self): organization = self.organization or self.request.organization if organization: - queryset = Submission.objects.filter(contest_object__organizations=organization) + queryset = Submission.objects.filter( + contest_object__organizations=organization + ) else: queryset = Submission.objects.all() use_straight_join(queryset)