Esempio n. 1
0
    def get_context_data(self, **kwargs):
        self.ctx = data = super(ProblemStatisticsView,
                                self).get_context_data(**kwargs)

        judge_servers = {
            server.pk: server.name
            for server in Server.objects.all()
        }
        for s in data['submission_list']:
            s.judge_server = judge_servers.get(s.judge_server, "N/A")

        data['user_ac_count'] = self.problem.ac_user_count
        data['user_all_count'] = self.problem.total_user_count
        data['user_ratio'] = self.problem.ac_user_ratio * 100
        data['ac_count'] = self.problem.ac_count
        data['all_count'] = self.problem.total_count
        data['ratio'] = self.problem.ac_ratio * 100
        data['difficulty'] = self.problem.reward
        data['stats'] = self.problem.stats
        data['param_type'] = self.request.GET.get('type', 'latest')
        data['tags'] = edit_string_for_tags(self.problem.tags)
        data['tags_choices'] = Tag.objects.all().values_list("name", flat=True)
        data['public_edit_access'] = is_problem_accepted(
            self.request.user, self.problem)
        data['all_valid'] = True
        self.get_runtime_distribution()

        return data
Esempio n. 2
0
 def get_tag_info(self):
     return {
         'tags':
         edit_string_for_tags(self.problem.tags),
         'tags_choices':
         Tag.objects.all().values_list("name", flat=True),
         'public_edit_access':
         self.privileged
         or is_problem_accepted(self.request.user, self.problem)
     }
Esempio n. 3
0
 def get_context_data(self, **kwargs):
     data = super(ProblemStatisticsView, self).get_context_data(**kwargs)
     data['user_ac_count'] = get_problem_accept_user_count(self.problem.id)
     data['user_all_count'] = get_problem_all_user_count(self.problem.id)
     data['user_ratio'] = get_problem_accept_user_ratio(self.problem.id)
     data['ac_count'] = get_problem_accept_count(self.problem.id)
     data['all_count'] = get_problem_all_count(self.problem.id)
     data['ratio'] = get_problem_accept_ratio(self.problem.id)
     data['difficulty'] = get_problem_difficulty(self.problem.id)
     data['stats'] = get_problem_stats(self.problem.id)
     data['param_type'] = self.request.GET.get('type', 'latest')
     data['tags'] = edit_string_for_tags(self.problem.tags)
     data['tags_choices'] = Tag.objects.all().values_list("name", flat=True)
     data['public_edit_access'] = is_problem_accepted(
         self.request.user, self.problem)
     return data