Esempio n. 1
0
def _make_base_report(env, kind):
    """Helper function making: SubmissionReport, ScoreReport,
       CompilationReport.

       Used ``environ`` keys:
           * ``status``
           * ``score``
           * ``compilation_result``
           * ``compilation_message``
           * ``submission_id``
           * ``max_score``

       Alters ``environ`` by adding:
           * ``report_id``: id of the produced
             :class:`~oioioi.contests.models.SubmissionReport`

       Returns: tuple (submission, submission_report)
    """
    submission = Submission.objects.get(id=env['submission_id'])
    submission_report = SubmissionReport(submission=submission)
    submission_report.kind = kind
    submission_report.save()

    env['report_id'] = submission_report.id

    status_report = ScoreReport(submission_report=submission_report)
    status_report.status = env['status']
    status_report.score = env['score']
    status_report.max_score = env['max_score']
    status_report.save()

    compilation_report = CompilationReport(submission_report=submission_report)
    compilation_report.status = env['compilation_result']
    compilation_message = env['compilation_message']

    if not isinstance(compilation_message, unicode):
        compilation_message = compilation_message.decode('utf8')
    compilation_report.compiler_output = compilation_message
    compilation_report.save()

    return submission, submission_report
Esempio n. 2
0
def _make_base_report(env, kind):
    """Helper function making: SubmissionReport, ScoreReport,
       CompilationReport.

       Used ``environ`` keys:
           * ``status``
           * ``score``
           * ``compilation_result``
           * ``compilation_message``
           * ``submission_id``
           * ``max_score``

       Alters ``environ`` by adding:
           * ``report_id``: id of the produced
             :class:`~oioioi.contests.models.SubmissionReport`

       Returns: tuple (submission, submission_report)
    """
    submission = Submission.objects.get(id=env['submission_id'])
    submission_report = SubmissionReport(submission=submission)
    submission_report.kind = kind
    submission_report.save()

    env['report_id'] = submission_report.id

    status_report = ScoreReport(submission_report=submission_report)
    status_report.status = env['status']
    status_report.score = env['score']
    status_report.max_score = env['max_score']
    status_report.save()

    compilation_report = CompilationReport(submission_report=submission_report)
    compilation_report.status = env['compilation_result']
    compilation_message = env['compilation_message']

    if not isinstance(compilation_message, unicode):
        compilation_message = compilation_message.decode('utf8')
    compilation_report.compiler_output = compilation_message
    compilation_report.save()

    return submission, submission_report