Format
This commit is contained in:
parent
1595063463
commit
1ca0d51f67
7 changed files with 41 additions and 41 deletions
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -441,7 +441,7 @@ class OrganizationSubmissions(
|
|||
LoginRequiredMixin, MemberOrganizationMixin, SubmissionsListBase
|
||||
):
|
||||
template_name = "organization/submissions.html"
|
||||
|
||||
|
||||
@cached_property
|
||||
def in_contest(self):
|
||||
return False
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue