def get_context_data(self, **kwargs): context = super(SubmitView, self).get_context_data(**kwargs) context['problem'] = problem = Problem.objects.get(pk=kwargs.get('pk', None)) context['submit_form'] = SubmissionForm() context['submissions'] = subs = Submission.objects.filter(problem=problem, submitter=self.request.user.student) context['can_submit'] = ([x for x in subs if x.status <= 1 or x.status == 2].__len__() == 0) return context
def post(self, request, *args, **kwargs): problem = Problem.objects.get(pk=kwargs.get('pk', None)) form = SubmissionForm(request.POST, request.FILES) if form.is_valid(): submission = Submission(problem=problem, submitter=request.user.student, code=request.POST['code'], number=Submission.objects.filter(problem=problem, submitter=request.user.student).count()+1 ) submission.save() return redirect('submission', problem.pk, submission.pk) else: return redirect('submit', problem.pk)