Optimize submission page
This commit is contained in:
parent
0f3e5edc8c
commit
a5df36c476
1 changed files with 12 additions and 12 deletions
|
@ -404,10 +404,11 @@ class SubmissionsListBase(DiggPaginatorMixin, TitleMixin, ListView):
|
||||||
language__in=Language.objects.filter(key__in=self.selected_languages)
|
language__in=Language.objects.filter(key__in=self.selected_languages)
|
||||||
)
|
)
|
||||||
if self.selected_statuses:
|
if self.selected_statuses:
|
||||||
queryset = queryset.filter(
|
submission_results = [i for i, _ in Submission.RESULT]
|
||||||
Q(result__in=self.selected_statuses)
|
if self.selected_statuses[0] in submission_results:
|
||||||
| Q(status__in=self.selected_statuses)
|
queryset = queryset.filter(result__in=self.selected_statuses)
|
||||||
)
|
else:
|
||||||
|
queryset = queryset.filter(status__in=self.selected_statuses)
|
||||||
|
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
@ -521,8 +522,8 @@ class SubmissionsListBase(DiggPaginatorMixin, TitleMixin, ListView):
|
||||||
if check is not None:
|
if check is not None:
|
||||||
return check
|
return check
|
||||||
|
|
||||||
self.selected_languages = set(request.GET.getlist("language"))
|
self.selected_languages = request.GET.getlist("language")
|
||||||
self.selected_statuses = set(request.GET.getlist("status"))
|
self.selected_statuses = request.GET.getlist("status")
|
||||||
|
|
||||||
if self.in_contest and self.contest.is_editable_by(self.request.user):
|
if self.in_contest and self.contest.is_editable_by(self.request.user):
|
||||||
self.include_frozen = True
|
self.include_frozen = True
|
||||||
|
@ -816,15 +817,14 @@ class AllSubmissions(GeneralSubmissions):
|
||||||
return context
|
return context
|
||||||
|
|
||||||
def _get_result_data(self):
|
def _get_result_data(self):
|
||||||
if (
|
if self.request.organization or self.in_contest:
|
||||||
self.request.organization
|
|
||||||
or self.in_contest
|
|
||||||
or self.selected_languages
|
|
||||||
or self.selected_statuses
|
|
||||||
):
|
|
||||||
return super(AllSubmissions, self)._get_result_data()
|
return super(AllSubmissions, self)._get_result_data()
|
||||||
|
|
||||||
key = "global_submission_result_data"
|
key = "global_submission_result_data"
|
||||||
|
if self.selected_statuses:
|
||||||
|
key += ":" + ",".join(self.selected_statuses)
|
||||||
|
if self.selected_languages:
|
||||||
|
key += ":" + ",".join(self.selected_languages)
|
||||||
result = cache.get(key)
|
result = cache.get(key)
|
||||||
if result:
|
if result:
|
||||||
return result
|
return result
|
||||||
|
|
Loading…
Add table
Reference in a new issue