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
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