Пример #1
0
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['has_rating'] = self.object.ratings.exists()

        if self.request.user.is_authenticated and self.request.in_contest:
            context['completed_problem_ids'] = contest_completed_ids(self.request.profile.current_contest)

        return context
Пример #2
0
    def get_context_data(self, **kwargs):
        context = super(ContestDetail, self).get_context_data(**kwargs)

        clarifications = ProblemClarification.objects.filter(problem__in=self.object.problems.all())
        context['has_clarifications'] = clarifications.count() > 0
        context['clarifications'] = clarifications.order_by('-date')

        if self.request.user.is_authenticated:
            if self.request.in_contest:
                context['completed_problem_ids'] = contest_completed_ids(self.request.profile.current_contest)

            context['own_open_tickets'] = (Ticket.objects.filter(user=self.request.profile, is_open=True).order_by('-id')
                                           .prefetch_related('linked_item').select_related('user__user'))

        context['contest_problems'] = Problem.objects.filter(contests__contest=self.object) \
            .order_by('contests__order').defer('description') \
            .annotate(has_public_editorial=Sum(Case(When(solution__is_public=True, then=1),
                                                    default=0, output_field=IntegerField()))) \
            .add_i18n_name(self.request.LANGUAGE_CODE)
        return context
Пример #3
0
 def get_completed_problems(self):
     if self.in_contest:
         return contest_completed_ids(self.profile.current_contest)
     else:
         return user_completed_ids(self.profile) if self.profile is not None else ()
Пример #4
0
 def get_completed_problems(self):
     if self.in_contest:
         return contest_completed_ids(self.contest_profile.current)
     else:
         return user_completed_ids(self.profile) if self.profile is not None else ()