def render_report(self, request, report):
        if report.kind == 'FAILURE':
            return ContestController.render_report(self, request, report)

        score_report = ScoreReport.objects.get(submission_report=report)
        compilation_report = \
                CompilationReport.objects.get(submission_report=report)
        test_reports = TestReport.objects.filter(submission_report=report) \
                .order_by('test__order', 'test_group', 'test_name')
        group_reports = GroupReport.objects.filter(submission_report=report)
        show_scores = any(gr.score is not None for gr in group_reports)
        group_reports = dict((g.group, g) for g in group_reports)

        groups = []
        for group_name, tests in itertools.groupby(test_reports,
                                                   attrgetter('test_group')):
            groups.append({
                'tests': list(tests),
                'report': group_reports[group_name]
            })

        return render_to_string(
            'programs/report.html',
            context_instance=RequestContext(
                request, {
                    'report': report,
                    'score_report': score_report,
                    'compilation_report': compilation_report,
                    'groups': groups,
                    'show_scores': show_scores
                }))
예제 #2
0
    def render_report(self, request, report):
        if report.kind == 'FAILURE':
            return ContestController.render_report(self, request,
                    report)

        score_report = ScoreReport.objects.get(submission_report=report)
        compilation_report = \
                CompilationReport.objects.get(submission_report=report)
        test_reports = TestReport.objects.filter(submission_report=report) \
                .order_by('test_group', 'test_name')
        group_reports = GroupReport.objects.filter(submission_report=report)
        group_reports = dict((g.group, g) for g in group_reports)

        groups = []
        for group_name, tests in itertools.groupby(test_reports,
                attrgetter('test_group')):
            groups.append({'tests': list(tests),
                'report': group_reports[group_name]})

        return render_to_string('programs/report.html',
                context_instance=RequestContext(request,
                    {'report': report, 'score_report': score_report,
                        'compilation_report': compilation_report,
                        'groups': groups}))
예제 #3
0
 def render_report_failure(self, request, report):
     return ContestController.render_report(self, request, report)
예제 #4
0
 def render_report_failure(self, request, report):
     return ContestController.render_report(self, request, report)