Exemple #1
0
    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
Exemple #2
0
    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)