def upload_submission(request):
	#if not request.user.has_perm('datastore.evaluation.add'):
	#	return render_to_response('registration/not_authorized.html')


	if request.method == 'POST':
		form = UploadSubmissionForm(request.POST, request.FILES)
		if form.is_valid():
			challenge=form.cleaned_data['challenge']
			can_submit,past_count,total_allowance=check_challenge_timeout(request.user,challenge)
			if can_submit:
				uploaded_file=request.FILES['submission_file'];
				return do_upload_submission(request,form,uploaded_file);
			else:
				form._errors['challenge']=ErrorList(["You have %d submissions to %s in past %d days. You are not allowed to submit right now. Contact the organizers if you feel this is a mistake" %(past_count,challenge.name,challenge.limit_in_N_days)]);
			#return HttpResponseRedirect('/datastore/')
	else:
		form = UploadSubmissionForm()

	challenges_info=Challenge.objects.all()
	for c in challenges_info:
		can_submit,used_allowance,total_allowance = check_challenge_timeout(request.user,c);
		c.can_submit=can_submit
		c.used_allowance=used_allowance
		c.total_allowance=total_allowance

	return render_to_response('evaluation/upload_submission.html', {'form': form,'user':request.user,'challenges_info':challenges_info})
Beispiel #2
0
def render_submit(request, params={}):
    team = request.user.team
    submission_end = time.localtime() > SUBMISSION_DEADLINE

    if not 'form' in params:
        params['form'] = UploadSubmissionForm()

    params.update({'submission_end': submission_end, 'team': team})

    return render(request, 'submission/submit.html', params)
Beispiel #3
0
def upload_submission(request):
    #if not request.user.has_perm('datastore.evaluation.add'):
    #	return render_to_response('registration/not_authorized.html')

    if request.method == 'POST':
        form = UploadSubmissionForm(request.POST, request.FILES)
        if form.is_valid():
            challenge = form.cleaned_data['challenge']
            can_submit, past_count, total_allowance = check_challenge_timeout(
                request.user, challenge)
            if can_submit:
                uploaded_file = request.FILES['submission_file']
                return do_upload_submission(request, form, uploaded_file)
            else:
                form._errors['challenge'] = ErrorList([
                    "You have %d submissions to %s in past %d days. You are not allowed to submit right now. Contact the organizers if you feel this is a mistake"
                    % (past_count, challenge.name, challenge.limit_in_N_days)
                ])
            #return HttpResponseRedirect('/datastore/')
    else:
        form = UploadSubmissionForm()

    challenges_info = Challenge.objects.all()
    for c in challenges_info:
        can_submit, used_allowance, total_allowance = check_challenge_timeout(
            request.user, c)
        c.can_submit = can_submit
        c.used_allowance = used_allowance
        c.total_allowance = total_allowance

    return render_to_response('evaluation/upload_submission.html', {
        'form': form,
        'user': request.user,
        'challenges_info': challenges_info
    })
Beispiel #4
0
def submit(request):
    team = request.user.team
    params = dict()

    if request.method == 'POST':
        form = UploadSubmissionForm(request.POST, request.FILES)
        params['form'] = form

        if form.is_valid():
            submission = Submission(
                team=team,
                package=request.FILES['file'],
                user=request.user,
            )
            submission.save()

            error = utils.unzip(submission.package.path)
            if error:
                submission.delete()
                params['error'] = error
                return render_submit(request, params)

            submissions = team.submission_set.all()
            if len(submissions) > 2:
                for sub in submissions[2:]:
                    sub.delete()

            execute_tester(submission)
            messages.add_message(request, messages.INFO,
                                 _(u'Rozwiązanie zostało wysłane'))
            return redirect('my_results')
            #return my_results(
            #    request, message=_(u'Rozwiązanie zostało wysłane.'))
        else:
            print form.errors

    return render_submit(request, params)
Beispiel #5
0
def submit(request):
    team = request.user.team
    params = dict()

    if request.method == 'POST':
        form = UploadSubmissionForm(request.POST, request.FILES)
        params['form'] = form

        if form.is_valid():
            submission = Submission(
                team=team,
                package=request.FILES['file'],
                user=request.user,
            )
            submission.save()

            error = utils.unzip(submission.package.path)
            if error:
                submission.delete()
                params['error'] = error
                return render_submit(request, params)

            submissions = team.submission_set.all()
            if len(submissions) > 2:
                for sub in submissions[2:]:
                    sub.delete()

            execute_tester(submission)
            messages.add_message(request, messages.INFO, _(u'Rozwiązanie zostało wysłane'))
            return redirect('my_results')
            #return my_results(
            #    request, message=_(u'Rozwiązanie zostało wysłane.'))
        else:
            print form.errors

    return render_submit(request, params)