示例#1
0
 def mutate(self, info, *args, **kwargs):
     form = SubmitSubmissionForm(kwargs)
     if form.is_valid():
         values = form.cleaned_data
         problem = get_object_or_None(Problem, slug=values['problem_slug'])
         attach_info = SubmissionAttachInfo(
             cases_count=DataService.get_cases_count(problem.pk))
         result = JudgeResultModel(_result=JudgeResult.PD.full)
         sub = Submission(code=values.get('code'),
                          _language=values.get('language'),
                          user=info.context.user,
                          problem=problem)
         attach_info.save()
         result.save()
         sub.attach_info = attach_info
         sub.result = result
         sub.save()
         apply_submission.apply_async(
             args=(sub.get_judge_field(), ),
             queue=settings.JUDGE.get('task_queue'))
         problem.ins_submit_times()
         return SubmitSubmission(pk=sub.pk)
     else:
         raise RuntimeError(form.errors.as_json())