Add set scoreboard view

This commit is contained in:
cuom1999 2020-12-27 19:59:57 -06:00
parent 8e1e3b246a
commit b3d80b5100
6 changed files with 34 additions and 1 deletions

View file

@ -80,6 +80,7 @@ class PostList(ListView):
if self.request.user.is_authenticated:
q |= Q(is_organization_private=True, organizations__in=user.organizations.all())
q |= Q(is_private=True, private_contestants=user)
q |= Q(view_contest_scoreboard=user)
visible_contests = visible_contests.filter(q)
context['current_contests'] = visible_contests.filter(start_time__lte=now, end_time__gt=now).distinct()
context['future_contests'] = visible_contests.filter(start_time__gt=now).distinct()

View file

@ -70,6 +70,7 @@ class ContestListMixin(object):
if self.request.user.is_authenticated:
q |= Q(is_organization_private=True, organizations__in=self.request.profile.organizations.all())
q |= Q(is_private=True, private_contestants=self.request.profile)
q |= Q(view_contest_scoreboard=self.request.profile)
queryset = queryset.filter(q)
return queryset.distinct()
@ -254,6 +255,7 @@ class ContestClone(ContestMixin, PermissionRequiredMixin, TitleMixin, SingleObje
tags = contest.tags.all()
organizations = contest.organizations.all()
private_contestants = contest.private_contestants.all()
view_contest_scoreboard = contest.view_contest_scoreboard.all()
contest_problems = contest.contest_problems.all()
contest.pk = None
@ -265,6 +267,7 @@ class ContestClone(ContestMixin, PermissionRequiredMixin, TitleMixin, SingleObje
contest.tags.set(tags)
contest.organizations.set(organizations)
contest.private_contestants.set(private_contestants)
contest.view_contest_scoreboard.set(view_contest_scoreboard)
contest.organizers.add(self.request.profile)
for problem in contest_problems:

View file

@ -74,6 +74,7 @@ class ContestSelect2View(Select2View):
q |= Q(is_organization_private=True,
organizations__in=self.request.profile.organizations.all())
q |= Q(is_private=True, private_contestants=self.request.profile)
q |= Q(view_contest_scoreboard=self.request.profile)
queryset = queryset.filter(q)
return queryset