def addProblem(request, contest_id): U = request.user try: U = JudgeUser.objects.get(username = U.username) except: U = None if U is None: return HttpResponseRedirect(reverse('login_page')) if request.method == 'POST': if U.is_authenticated(): prob_id = request.POST["prob_id"] prob_name = request.POST["prob_name"] statement = request.POST["statement"] input_data = request.POST["input"] output_data = request.POST["output"] sample_input = request.POST["Sinput"] sample_output = request.POST["Soutput"] contest_name = request.POST["contest_name"] blogpost = BlogPost(heading = prob_id, addedby = U, timestamp = timezone.now()) blogpost.save() contest = Contest.objects.get(pk = contest_name) #Created New Problem newProblem = Problem( name = prob_name, p_id = prob_id, statement = statement, setter = U, contest = contest, sample_input = sample_input, sample_output = sample_output, comments = blogpost ) newProblem.save() #Save Correct input and output Jury.createIO(newProblem, input_data, output_data) else: return HttpResponseRedirect(reverse('login_page')) context = { 'user' : U, 'contest_name' : contest_id } return render(request, 'add_problem.html', context)
def addProblem(request, contest_id): U = request.user try: U = JudgeUser.objects.get(username=U.username) except: U = None if U is None: return HttpResponseRedirect(reverse('login_page')) if request.method == 'POST': if U.is_authenticated(): prob_id = request.POST["prob_id"] prob_name = request.POST["prob_name"] statement = request.POST["statement"] input_data = request.POST["input"] output_data = request.POST["output"] sample_input = request.POST["Sinput"] sample_output = request.POST["Soutput"] contest_name = request.POST["contest_name"] blogpost = BlogPost(heading=prob_id, addedby=U, timestamp=timezone.now()) blogpost.save() contest = Contest.objects.get(pk=contest_name) #Created New Problem newProblem = Problem(name=prob_name, p_id=prob_id, statement=statement, setter=U, contest=contest, sample_input=sample_input, sample_output=sample_output, comments=blogpost) newProblem.save() #Save Correct input and output Jury.createIO(newProblem, input_data, output_data) else: return HttpResponseRedirect(reverse('login_page')) context = {'user': U, 'contest_name': contest_id} return render(request, 'add_problem.html', context)
def getResult(request, prob_id): print prob_id problem = Problem.objects.get(pk=prob_id) print problem.p_id Str = request.POST["code_text"] solver = request.user solver = JudgeUser.objects.get(username=solver.username) try: sol_obj = (solver.solution_list).get(problem=problem) except: sol_obj = None if sol_obj is None: bug = "1" sol_obj = Solution(code=Str, problem=problem, submission_time=datetime.datetime.now()) else: bug = "2" print sol_obj.code sol_obj.code = Str sol_obj.submission_time = datetime.datetime.now() sol_obj.verdict = Jury.getVerdict(sol_obj) print "BUFF" if sol_obj.verdict == "Success": solver.AC_Count += 1 if sol_obj.verdict == "Compilation Error": solver.CE_Count += 1 if sol_obj.verdict == "Time Limit Exceeded": solver.TLE_Count += 1 if sol_obj.verdict == "Wrong Answer": solver.WA_Count += 1 if sol_obj.verdict == "Runtime Error": solver.RE_Count += 1 solver.save() if sol_obj.verdict == "Success": sol_obj.solved = 1 elif sol_obj.solved != 1: sol_obj.penalty = sol_obj.penalty + 1 sol_obj.save() solver.solution_list.add(Solution.objects.last()) context = { 'problem': problem, 'sol_obj': sol_obj, 'solver': solver, 'bug': bug } return render(request, 'get_result.html', context)
def getResult(request, prob_id): print prob_id problem = Problem.objects.get(pk = prob_id) print problem.p_id Str = request.POST["code_text"] solver = request.user solver = JudgeUser.objects.get(username = solver.username) try: sol_obj = (solver.solution_list).get(problem = problem) except: sol_obj = None if sol_obj is None: bug = "1" sol_obj = Solution(code = Str, problem = problem, submission_time = datetime.datetime.now()) else: bug = "2" print sol_obj.code sol_obj.code = Str sol_obj.submission_time = datetime.datetime.now() sol_obj.verdict = Jury.getVerdict(sol_obj) print "BUFF" if sol_obj.verdict == "Success": solver.AC_Count +=1; if sol_obj.verdict == "Compilation Error": solver.CE_Count +=1 if sol_obj.verdict == "Time Limit Exceeded": solver.TLE_Count +=1 if sol_obj.verdict == "Wrong Answer": solver.WA_Count +=1 if sol_obj.verdict == "Runtime Error": solver.RE_Count +=1 solver.save() if sol_obj.verdict == "Success": sol_obj.solved = 1 elif sol_obj.solved != 1: sol_obj.penalty = sol_obj.penalty + 1 sol_obj.save() solver.solution_list.add(Solution.objects.last()) context = { 'problem' : problem, 'sol_obj' : sol_obj, 'solver' : solver, 'bug' : bug } return render(request, 'get_result.html', context)