Esempio n. 1
0
    def get_context_data(self, **kwargs):
        context = super(SubmissionsListBase, self).get_context_data(**kwargs)
        authenticated = self.request.user.is_authenticated
        context['dynamic_update'] = False
        context['dynamic_contest_id'] = self.in_contest and self.contest.id
        context['show_problem'] = self.show_problem
        context['completed_problem_ids'] = user_completed_ids(
            self.request.profile) if authenticated else []
        context['editable_problem_ids'] = user_editable_ids(
            self.request.profile) if authenticated else []
        context['tester_problem_ids'] = user_tester_ids(
            self.request.profile) if authenticated else []

        context['all_languages'] = Language.objects.all().values_list(
            'key', 'name')
        context['selected_languages'] = self.selected_languages

        context['all_statuses'] = self.get_searchable_status_codes()
        context['selected_statuses'] = self.selected_statuses

        context['results_json'] = mark_safe(json.dumps(self.get_result_data()))
        context['results_colors_json'] = mark_safe(
            json.dumps(settings.DMOJ_STATS_SUBMISSION_RESULT_COLORS))

        context['page_suffix'] = suffix = (
            '?' + self.request.GET.urlencode()) if self.request.GET else ''
        context['first_page_href'] = (self.first_page_href or '.') + suffix
        context['my_submissions_link'] = self.get_my_submissions_page()
        context['all_submissions_link'] = self.get_all_submissions_page()
        context['tab'] = self.tab
        return context
Esempio n. 2
0
    def get_context_data(self, **kwargs):
        context = super(SubmissionsListBase, self).get_context_data(**kwargs)
        authenticated = self.request.user.is_authenticated
        context['dynamic_update'] = False
        context['show_problem'] = self.show_problem
        context['completed_problem_ids'] = user_completed_ids(
            self.request.user.profile) if authenticated else []
        context['authored_problem_ids'] = user_authored_ids(
            self.request.user.profile) if authenticated else []
        context['editable_problem_ids'] = user_editable_ids(
            self.request.user.profile) if authenticated else []

        context['all_languages'] = Language.objects.all().values_list(
            'key', 'name')
        context['selected_languages'] = self.selected_languages

        context['all_statuses'] = self.get_searchable_status_codes()
        context['selected_statuses'] = self.selected_statuses

        context['results'] = self.get_result_table()

        context['page_suffix'] = suffix = (
            '?' + self.request.GET.urlencode()) if self.request.GET else ''
        context['first_page_href'] = (self.first_page_href or '.') + suffix
        context['my_submissions_link'] = self.get_my_submissions_page()
        context['all_submissions_link'] = self.get_all_submissions_page()
        context['tab'] = self.tab
        return context
Esempio n. 3
0
    def get_paginator(self, queryset, per_page, orphans=0,
                      allow_empty_first_page=True, **kwargs):
        paginator = DiggPaginator(queryset, per_page, body=6, padding=2, orphans=orphans,
                                  allow_empty_first_page=allow_empty_first_page, **kwargs)
        if not self.in_contest:
            # Get the number of pages and then add in this magic.
            # noinspection PyStatementEffect
            paginator.num_pages

            queryset = queryset.add_i18n_name(self.request.LANGUAGE_CODE)
            sort_key = self.order.lstrip('-')
            if sort_key in self.sql_sort:
                queryset = queryset.order_by(self.order)
            elif sort_key == 'name':
                queryset = queryset.order_by(self.order.replace('name', 'i18n_name'))
            elif sort_key == 'group':
                queryset = queryset.order_by(self.order + '__name')
            elif sort_key == 'solved':
                if self.request.user.is_authenticated():
                    solved = user_completed_ids(self.request.user.profile)
                    queryset = list(queryset)
                    queryset.sort(key=lambda problem: problem.id in solved, reverse=self.order.startswith('-'))
            elif sort_key == 'type':
                if self.show_types:
                    queryset = list(queryset)
                    queryset.sort(key=lambda problem: problem.types_list[0] if problem.types_list else '',
                                  reverse=self.order.startswith('-'))
            paginator.object_list = queryset
        return paginator
Esempio n. 4
0
def single_submission(request):
    request.no_profile_update = True
    if 'id' not in request.GET or not request.GET['id'].isdigit():
        return HttpResponseBadRequest()
    try:
        show_problem = int(request.GET.get('show_problem', '1'))
    except ValueError:
        return HttpResponseBadRequest()

    authenticated = request.user.is_authenticated
    submission = get_object_or_404(submission_related(
        Submission.objects.all()),
                                   id=int(request.GET['id']))
    if not submission.problem.is_accessible_by(request.user):
        raise Http404()

    return render(
        request, 'submission/row.html', {
            'submission':
            submission,
            'completed_problem_ids':
            user_completed_ids(request.profile) if authenticated else [],
            'editable_problem_ids':
            user_editable_ids(request.profile) if authenticated else [],
            'tester_problem_ids':
            user_tester_ids(request.profile) if authenticated else [],
            'show_problem':
            show_problem,
            'problem_name':
            show_problem
            and submission.problem.translated_name(request.LANGUAGE_CODE),
            'profile_id':
            request.profile.id if authenticated else 0,
        })
Esempio n. 5
0
def single_submission(request, submission_id, show_problem=True):
    authenticated = request.user.is_authenticated
    submission = get_object_or_404(submission_related(
        Submission.objects.all()),
                                   id=int(submission_id))

    if not submission.problem.is_accessible_by(request.user):
        raise Http404()

    return render(
        request, 'submission/row.html', {
            'submission':
            submission,
            'authored_problem_ids':
            user_authored_ids(request.user.profile) if authenticated else [],
            'completed_problem_ids':
            user_completed_ids(request.user.profile) if authenticated else [],
            'editable_problem_ids':
            user_editable_ids(request.user.profile) if authenticated else [],
            'show_problem':
            show_problem,
            'problem_name':
            show_problem
            and submission.problem.translated_name(request.LANGUAGE_CODE),
            'profile_id':
            request.user.profile.id if authenticated else 0,
        })
Esempio n. 6
0
    def get_paginator(self, queryset, per_page, orphans=0,
                      allow_empty_first_page=True, **kwargs):
        paginator = DiggPaginator(queryset, per_page, body=6, padding=2, orphans=orphans,
                                  allow_empty_first_page=allow_empty_first_page, **kwargs)
        if not self.in_contest:
            # Get the number of pages and then add in this magic.
            # noinspection PyStatementEffect
            paginator.num_pages

            queryset = queryset.add_i18n_name(self.request.LANGUAGE_CODE)
            sort_key = self.order.lstrip('-')
            if sort_key in self.sql_sort:
                queryset = queryset.order_by(self.order)
            elif sort_key == 'name':
                queryset = queryset.order_by(self.order.replace('name', 'i18n_name'))
            elif sort_key == 'group':
                queryset = queryset.order_by(self.order + '__name')
            elif sort_key == 'solved':
                if self.request.user.is_authenticated():
                    solved = user_completed_ids(self.request.user.profile)
                    queryset = list(queryset)
                    queryset.sort(key=lambda problem: problem.id in solved, reverse=self.order.startswith('-'))
            elif sort_key == 'type':
                if self.show_types:
                    queryset = list(queryset)
                    queryset.sort(key=lambda problem: problem.types_list[0] if problem.types_list else '',
                                  reverse=self.order.startswith('-'))
            paginator.object_list = queryset
        return paginator
Esempio n. 7
0
 def get_context_data(self, **kwargs):
     context = super(SubmissionsListBase, self).get_context_data(**kwargs)
     context['dynamic_update'] = False
     context['show_problem'] = self.show_problem
     context['completed_problem_ids'] = (user_completed_ids(self.request.user.profile)
                                         if self.request.user.is_authenticated() else [])
     context['results'] = self.get_result_table()
     context['first_page_href'] = self.first_page_href or '.'
     return context
Esempio n. 8
0
 def get_context_data(self, **kwargs):
     context = super(SubmissionsListBase, self).get_context_data(**kwargs)
     context['dynamic_update'] = False
     context['show_problem'] = self.show_problem
     context['completed_problem_ids'] = (user_completed_ids(
         self.request.user.profile) if self.request.user.is_authenticated()
                                         else [])
     context['results'] = self.get_result_table()
     context['first_page_href'] = self.first_page_href or '.'
     return context
Esempio n. 9
0
def single_submission(request, submission_id, show_problem=True):
    authenticated = request.user.is_authenticated()
    submission = get_object_or_404(submission_related(Submission.objects.all()), id=int(submission_id))
    return render(request, 'submission/row.jade', {
        'submission': submission,
        'completed_problem_ids': user_completed_ids(request.user.profile) if authenticated else [],
        'show_problem': show_problem,
        'problem_name': show_problem and submission.problem.translated_name(request.LANGUAGE_CODE),
        'profile_id': request.user.profile.id if authenticated else 0,
    })
Esempio n. 10
0
def single_submission(request, id):
    try:
        authenticated = request.user.is_authenticated()
        return render_to_response('submission/row.jade', {
            'submission': Submission.objects.get(id=int(id)),
            'completed_problem_ids': user_completed_ids(request.user.profile) if authenticated else [],
            'show_problem': True,
            'profile_id': request.user.profile.id if authenticated else 0,
        }, context_instance=RequestContext(request))
    except ObjectDoesNotExist:
        raise Http404()
Esempio n. 11
0
def single_submission(request, submission, show_problem=True):
    try:
        authenticated = request.user.is_authenticated()
        return render(request, 'submission/row.jade', {
            'submission': get_object_or_404(submission_related(Submission.objects.all()), id=int(submission)),
            'completed_problem_ids': user_completed_ids(request.user.profile) if authenticated else [],
            'show_problem': show_problem,
            'profile_id': request.user.profile.id if authenticated else 0,
        })
    except ObjectDoesNotExist:
        raise Http404()
Esempio n. 12
0
 def get_context_data(self, **kwargs):
     context = super(SubmissionsListBase, self).get_context_data(**kwargs)
     authenticated = self.request.user.is_authenticated
     context['dynamic_update'] = False
     context['show_problem'] = self.show_problem
     context['completed_problem_ids'] = user_completed_ids(
         self.request.user.profile) if authenticated else []
     context['authored_problem_ids'] = user_authored_ids(
         self.request.user.profile) if authenticated else []
     context['editable_problem_ids'] = user_editable_ids(
         self.request.user.profile) if authenticated else []
     context['results'] = self.get_result_table()
     context['first_page_href'] = self.first_page_href or '.'
     context['my_submissions_link'] = self.get_my_submissions_page()
     context['all_submissions_link'] = self.get_all_submissions_page()
     context['tab'] = self.tab
     return context
Esempio n. 13
0
def single_submission(request, submission_id, show_problem=True):
    request.no_profile_update = True
    authenticated = request.user.is_authenticated
    submission = get_object_or_404(submission_related(Submission.objects.all()), id=int(submission_id))

    if not submission.problem.is_accessible_by(request.user):
        raise Http404()

    return render(request, 'submission/row.html', {
        'submission': submission,
        'authored_problem_ids': user_authored_ids(request.user.profile) if authenticated else [],
        'completed_problem_ids': user_completed_ids(request.user.profile) if authenticated else [],
        'editable_problem_ids': user_editable_ids(request.user.profile) if authenticated else [],
        'show_problem': show_problem,
        'problem_name': show_problem and submission.problem.translated_name(request.LANGUAGE_CODE),
        'profile_id': request.user.profile.id if authenticated else 0,
    })
Esempio n. 14
0
def single_submission(request, id, show_problem=True):
    try:
        authenticated = request.user.is_authenticated()
        return render(
            request, 'submission/row.jade', {
                'submission':
                submission_related(Submission.objects).get(id=int(id)),
                'completed_problem_ids':
                user_completed_ids(request.user.profile)
                if authenticated else [],
                'show_problem':
                show_problem,
                'profile_id':
                request.user.profile.id if authenticated else 0,
            })
    except ObjectDoesNotExist:
        raise Http404()
Esempio n. 15
0
    def get_context_data(self, **kwargs):
        if not self.request.user.is_authenticated:
            raise Http404()
        user = self.request.user
        profile = self.request.profile
        context = super(UserDashboard, self).get_context_data(**kwargs)
        context['recently_attempted_problems'] = (Submission.objects.filter(
            user=profile, problem__is_public=True).exclude(
                problem__id__in=user_completed_ids(profile)).values_list(
                    'problem__code', 'problem__name',
                    'problem__points').annotate(
                        points=Max('points'),
                        latest=Max('date')).order_by('-latest'))[:7]
        context['own_comments'] = Comment.most_recent(user, 10, author=user)
        context['page_titles'] = CacheDict(
            lambda page: Comment.get_page_title(page))

        return context
Esempio n. 16
0
    def get_paginator(self,
                      queryset,
                      per_page,
                      orphans=0,
                      allow_empty_first_page=True,
                      **kwargs):
        paginator = DiggPaginator(
            queryset,
            per_page,
            body=6,
            padding=2,
            orphans=orphans,
            allow_empty_first_page=allow_empty_first_page,
            **kwargs)
        if not self.in_contest:
            # Get the number of pages and then add in this magic.
            # noinspection PyStatementEffect
            paginator.num_pages

            queryset = queryset.add_i18n_name(self.request.LANGUAGE_CODE)
            sort_key = self.order.lstrip('-')
            if sort_key in self.sql_sort:
                queryset = queryset.order_by(self.order)
            elif sort_key == 'name':
                queryset = queryset.order_by(
                    self.order.replace('name', 'i18n_name'))
            elif sort_key == 'solved':
                if self.request.user.is_authenticated:
                    profile = self.request.profile
                    solved = user_completed_ids(profile)
                    attempted = user_attempted_ids(profile)

                    def _solved_sort_order(problem):
                        if problem.id in solved:
                            return 1
                        if problem.id in attempted:
                            return 0
                        return -1

                    queryset = list(queryset)
                    queryset.sort(key=_solved_sort_order,
                                  reverse=self.order.startswith('-'))
            paginator.object_list = list(queryset)
        return paginator
Esempio n. 17
0
def single_submission(request, submission_id, show_problem=True):
    authenticated = request.user.is_authenticated()
    submission = get_object_or_404(submission_related(
        Submission.objects.all()),
                                   id=int(submission_id))
    return render(
        request, 'submission/row.jade', {
            'submission':
            submission,
            'completed_problem_ids':
            user_completed_ids(request.user.profile) if authenticated else [],
            'show_problem':
            show_problem,
            'problem_name':
            show_problem
            and submission.problem.translated_name(request.LANGUAGE_CODE),
            'profile_id':
            request.user.profile.id if authenticated else 0,
        })
Esempio n. 18
0
    def get_context_data(self, **kwargs):
        if not self.request.user.is_authenticated:
            raise Http404()
        user = self.request.user
        profile = self.request.profile
        context = super(UserDashboard, self).get_context_data(**kwargs)
        context['recently_attempted_problems'] = (
            Submission.objects.filter(
                user=profile, problem__is_public=True).exclude(
                    problem_id__in=user_completed_ids(profile)).values_list(
                        'problem__code', 'problem__name',
                        'problem__points').annotate(
                            points=Max('points'),
                            latest=Max('date')).order_by('-latest')
            [:settings.DMOJ_BLOG_RECENTLY_ATTEMPTED_PROBLEMS_COUNT])
        context['own_tickets'] = Ticket.tickets_list(user).filter(
            user=profile)[:10]

        return context
Esempio n. 19
0
    def get_context_data(self, **kwargs):
        context = super(PostList, self).get_context_data(**kwargs)
        context['title'] = self.title or _(
            'Page %d of Posts') % context['page_obj'].number
        context['first_page_href'] = reverse('home')
        context['page_prefix'] = reverse('blog_post_list')
        context['comments'] = Comment.most_recent(self.request.user, 10)
        context['new_problems'] = Problem.objects.filter(
            is_public=True).order_by('-date', '-id')[:7]

        context['user_count'] = Profile.objects.count()
        context['problem_count'] = Problem.objects.filter(
            is_public=True).count()
        context['submission_count'] = Submission.objects.filter(
            problem__is_public=True).count()
        context['language_count'] = Language.objects.count()

        now = timezone.now()

        # Dashboard stuff
        if self.request.user.is_authenticated():
            user = self.request.user.profile
            context['recently_attempted_problems'] = (
                Submission.objects.filter(user=user).exclude(
                    problem__id__in=user_completed_ids(user)).values_list(
                        'problem__code', 'problem__name',
                        'problem__points').annotate(
                            points=Max('points'),
                            latest=Max('date')).order_by('-latest'))[:7]

        visible_contests = Contest.objects.filter(
            is_public=True).order_by('start_time')
        q = Q(is_private=False)
        if self.request.user.is_authenticated():
            q |= Q(organizations__in=user.organizations.all())
        visible_contests = visible_contests.filter(q)
        context['current_contests'] = visible_contests.filter(
            start_time__lte=now, end_time__gt=now)
        context['future_contests'] = visible_contests.filter(
            start_time__gt=now)
        return context
Esempio n. 20
0
    def get_context_data(self, **kwargs):
        context = super(SubmissionsListBase, self).get_context_data(**kwargs)
        authenticated = self.request.user.is_authenticated
        context['dynamic_update'] = False
        context['show_problem'] = self.show_problem
        context['completed_problem_ids'] = user_completed_ids(self.request.user.profile) if authenticated else []
        context['authored_problem_ids'] = user_authored_ids(self.request.user.profile) if authenticated else []
        context['editable_problem_ids'] = user_editable_ids(self.request.user.profile) if authenticated else []

        context['all_languages'] = Language.objects.all().values_list('key', 'name')
        context['selected_languages'] = self.selected_languages

        context['all_statuses'] = self.get_searchable_status_codes()
        context['selected_statuses'] = self.selected_statuses

        context['results_json'] = mark_safe(json.dumps(self.get_result_data()))

        context['page_suffix'] = suffix = ('?' + self.request.GET.urlencode()) if self.request.GET else ''
        context['first_page_href'] = (self.first_page_href or '.') + suffix
        context['my_submissions_link'] = self.get_my_submissions_page()
        context['all_submissions_link'] = self.get_all_submissions_page()
        context['tab'] = self.tab
        return context
Esempio n. 21
0
    def get_context_data(self, **kwargs):
        context = super(PostList, self).get_context_data(**kwargs)
        context['title'] = self.title or _('Page %d of Posts') % context['page_obj'].number
        context['first_page_href'] = reverse('home')
        context['page_prefix'] = reverse('blog_post_list')
        context['comments'] = Comment.most_recent(self.request.user, 10)
        context['new_problems'] = Problem.objects.filter(is_public=True, is_organization_private=False) \
                                         .order_by('-date', '-id')[:settings.DMOJ_BLOG_NEW_PROBLEM_COUNT]
        context['page_titles'] = CacheDict(lambda page: Comment.get_page_title(page))

        context['has_clarifications'] = False
        if self.request.user.is_authenticated:
            participation = self.request.profile.current_contest
            if participation:
                clarifications = ProblemClarification.objects.filter(problem__in=participation.contest.problems.all())
                context['has_clarifications'] = clarifications.count() > 0
                context['clarifications'] = clarifications.order_by('-date')

        context['user_count'] = lazy(Profile.objects.count, int, int)
        context['problem_count'] = lazy(Problem.objects.filter(is_public=True).count, int, int)
        context['submission_count'] = lazy(Submission.objects.count, int, int)
        context['language_count'] = lazy(Language.objects.count, int, int)

        context['post_comment_counts'] = {
            int(page[2:]): count for page, count in
            Comment.objects
                   .filter(page__in=['b:%d' % post.id for post in context['posts']], hidden=False)
                   .values_list('page').annotate(count=Count('page')).order_by()
        }

        now = timezone.now()

        # Dashboard stuff
        if self.request.user.is_authenticated:
            user = self.request.profile
            context['recently_attempted_problems'] = (Submission.objects.filter(user=user)
                                                      .exclude(problem__in=user_completed_ids(user))
                                                      .values_list('problem__code', 'problem__name', 'problem__points')
                                                      .annotate(points=Max('points'), latest=Max('date'))
                                                      .order_by('-latest')
                                                      [:settings.DMOJ_BLOG_RECENTLY_ATTEMPTED_PROBLEMS_COUNT])

        visible_contests = Contest.get_visible_contests(self.request.user).filter(is_visible=True) \
                                  .order_by('start_time')

        context['current_contests'] = visible_contests.filter(start_time__lte=now, end_time__gt=now)
        context['future_contests'] = visible_contests.filter(start_time__gt=now)

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

        # Superusers better be staffs, not the spell-casting kind either.
        if self.request.user.is_staff:
            tickets = (Ticket.objects.order_by('-id').filter(is_open=True).prefetch_related('linked_item')
                             .select_related('user__user'))
            context['open_tickets'] = filter_visible_tickets(tickets, self.request.user, profile)[:10]
        else:
            context['open_tickets'] = []
        return context
Esempio n. 22
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 ()
Esempio n. 23
0
 def get_completed_problems(self):
     return user_completed_ids(
         self.profile) if self.profile is not None else ()
Esempio n. 24
0
 def get_context_data(self, **kwargs):
     context = super(OwnProblemList, self).get_context_data(**kwargs)
     context["completed_problem_ids"] = user_completed_ids(self.request.user.profile)
     return context
Esempio n. 25
0
 def get_context_data(self, **kwargs):
     context = super(OwnProblemList, self).get_context_data(**kwargs)
     context['completed_problem_ids'] = user_completed_ids(
         self.request.user.profile)
     return context
Esempio n. 26
0
File: blog.py Progetto: DMOJ/site
    def get_context_data(self, **kwargs):
        context = super(PostList, self).get_context_data(**kwargs)
        context['title'] = self.title or _('Page %d of Posts') % context['page_obj'].number
        context['first_page_href'] = reverse('home')
        context['page_prefix'] = reverse('blog_post_list')
        context['comments'] = Comment.most_recent(self.request.user, 10)
        context['new_problems'] = Problem.objects.filter(is_public=True, is_organization_private=False) \
                                         .order_by('-date', '-id')[:7]
        context['page_titles'] = CacheDict(lambda page: Comment.get_page_title(page))

        context['has_clarifications'] = False
        if self.request.user.is_authenticated:
            participation = self.request.user.profile.current_contest
            if participation:
                clarifications = ProblemClarification.objects.filter(problem__in=participation.contest.problems.all())
                context['has_clarifications'] = clarifications.count() > 0
                context['clarifications'] = clarifications.order_by('-date')

        context['user_count'] = lazy(Profile.objects.count, int, int)
        context['problem_count'] = lazy(Problem.objects.filter(is_public=True).count, int, int)
        context['submission_count'] = lazy(Submission.objects.count, int, int)
        context['language_count'] = lazy(Language.objects.count, int, int)

        context['post_comment_counts'] = {
            int(page[2:]): count for page, count in
            Comment.objects
                .filter(page__in=['b:%d' % post.id for post in context['posts']], hidden=False)
                .values_list('page').annotate(count=Count('page')).order_by()
        }

        now = timezone.now()

        # Dashboard stuff
        if self.request.user.is_authenticated:
            user = self.request.user.profile
            context['recently_attempted_problems'] = (Submission.objects.filter(user=user)
                                                      .exclude(problem__in=user_completed_ids(user))
                                                      .values_list('problem__code', 'problem__name', 'problem__points')
                                                      .annotate(points=Max('points'), latest=Max('date'))
                                                      .order_by('-latest'))[:7]

        visible_contests = Contest.objects.filter(is_public=True).order_by('start_time')
        q = Q(is_private=False)
        if self.request.user.is_authenticated:
            q |= Q(organizations__in=user.organizations.all())
        visible_contests = visible_contests.filter(q)
        context['current_contests'] = visible_contests.filter(start_time__lte=now, end_time__gt=now)
        context['future_contests'] = visible_contests.filter(start_time__gt=now)

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

        # Superusers better be staffs, not the spell-casting kind either.
        if self.request.user.is_staff:
            tickets = (Ticket.objects.order_by('-id').filter(is_open=True).prefetch_related('linked_item')
                             .select_related('user__user'))
            context['open_tickets'] = filter_visible_tickets(tickets, self.request.user, profile)[:10]
        else:
            context['open_tickets'] = []
        return context
Esempio n. 27
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 ()